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

答案 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;
}
}
}