我有这个功能可以验证电子邮件地址。jsLint 使用正则表达式给出错误,抱怨某些字符未转义。
有没有办法正确逃避它们?
var validateEmail = function(elementValue){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
};
我有这个功能可以验证电子邮件地址。jsLint 使用正则表达式给出错误,抱怨某些字符未转义。
有没有办法正确逃避它们?
var validateEmail = function(elementValue){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
};
您使用的正则表达式是有效的。但我猜 JSLint 抱怨-
字符类前面缺少转义符号:
/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}$/
-
仅当字符类不在字符类的开头或结尾,或者在两个字符之间使用时不表示范围时,才需要对字符类内部进行转义。
以下是一些有效的示例:
/[-xyz]/ // "-", "x", "y", "z"
/[xyz-]/ // the same as above
/[-]/ // "-"
/[a-z-]/ // "a"-"z", "-"
/[a-b-c]/ // "a"-"b", "-", "c"
我没有立即看到需要逃避什么。你可能想试试/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
你的正则表达式。我只是把它整理了一下,+
然后%
在第一个字段中添加了和。