验证功能不起作用

时间:2017-01-16 16:27:24

标签: javascript validation

我已经创建了一个java脚本函数,它应该验证输入字符应该包含10个字符并且可以包含字母数字字符,但是这个函数不起作用,请帮帮我



.Net-3.5




3 个答案:

答案 0 :(得分:1)

使用您的代码,如果长度不是10,则不会发生任何其他情况。更好的方法可能是:

if ((id.value.length == 10) && id.value.match(letters)) {
    return true;
}
alert("NIC must ...");
id.focus();
return false;

答案 1 :(得分:1)

您可以将所有验证条件放在Regex中,例如^[a-zA-Z0-9]{10}$。请注意,正则表达式模式字符串中的其他{10}仅在长度 10 时创建匹配项。

然后,您可以使用Regex Object test方法,该方法针对字符串测试正则表达式模式,如果匹配成功则返回true,否则返回false。

完整修改后的代码段,包含正面和负面的测试用例。

function ValidateNIC(id){
	   
    var aphaPattern10 = /^[a-zA-Z0-9]{10}$/g;
    var result = aphaPattern10.test(id.value);

	if(!result){
      alert('NIC must have alphanumeric characters only or should contain 10 charaters');
        //id.focus();
      }
      return result;
 
}

var testObjPass = { value : "012345678a"}
console.log(ValidateNIC(testObjPass));

var testObjFail = { value : "012345678a21312"}
console.log(ValidateNIC(testObjFail));

答案 2 :(得分:0)

以下代码检查以下内容 NIC必须仅包含字母数字字符或应包含10个字符。 因此,如果它只有10个字符,那么它不会警告其他,它将测试正则表达式。考虑id是具有键值

的对象
  function ValidateNIC(id)
  {
      var letters = /^[0-9a-zA-Z ]+$/;

    if(id.value.length!==10){
      if(id.value.match(letters))
      {
          return true;
      }
      else
      {
          alert('NIC must have alphanumeric characters only or should contain 10 charaters');
          id.focus();
          return false;
      }
      }
  }