[英]Javascript to validate a name field
我正在使用Java脚本模式来验证名称,但意识到我真的需要成为模式专家才能解决此问题。 对于由字母组成的名称,该函数应返回true,名称可以由一个或多个用空格或连字符Eg分隔的字母单词组成。 以下是有效名称。
米歇尔·米歇尔·B·杰克逊·费希尔
以下是无效名称
我编写了以下函数,只要名称不超过2个用空格或-分隔的单词,就可以正常工作。 但是,现在要求已更改,名称可以包含多个单词。
function isAlpha(field) {
var lbl = field.name;
var val = field.value;
if (val==null || val.length==0) return true;
//egs of this pattern 1)Rachit Pant 2)R Pant
var rep1 = /[A-Za-z]+\s[A-Za-z]+/;
//egs of this pattern 1)Rachit-Pant 2)R-Pant
var rep2 = /[A-Za-z]+[-][A-Za-z]+/;
//one or more alpha character
var rep3 = /[A-Za-z]+/;
var test1 = val.match(rep1);
var test2 = val.match(rep2);
var test3 = val.match(rep3);
if((test1!=null)){
if(test1.length == 1 && test1[0].length == val.length)
return true;
}
if((test2!=null)){
if(test2.length == 1 && test2[0].length == val.length)
return true;
}
if((test3!=null)){
if(test3.length == 1 && test3[0].length == val.length)
return true;
}
alertMe('GL006',field,field);
return false;
}
试试这个正则表达式: ^[a-zA-Z]+(?:[ -][a-zA-Z]+)*$
。 关于您的JavaScript代码:您无需使用match
函数, test
就足够了,像这样:
var regExp = /^[a-zA-Z]+(?:[ -][a-zA-Z]+)*$/;
return regExp.test(val);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.