dam*_*mon 1 javascript regex jslint
我有这个功能,它将验证一个电子邮件地址.jsLint给出正则表达式的错误,抱怨某些字符是未转义的.
有没有办法正确逃脱它们?
var validateEmail = function(elementValue){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
};
Run Code Online (Sandbox Code Playgroud)
您正在使用的正则表达式是有效的.但我猜JSLint抱怨-字符类前面缺少的转义符号:
/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}$/
Run Code Online (Sandbox Code Playgroud)
-仅当字符类不在字符类的开头或结尾时,或者在两个字符之间使用时不表示范围时,才需要转义字符内部.
以下是一些有效的示例:
/[-xyz]/ // "-", "x", "y", "z"
/[xyz-]/ // the same as above
/[-]/ // "-"
/[a-z-]/ // "a"-"z", "-"
/[a-b-c]/ // "a"-"b", "-", "c"
Run Code Online (Sandbox Code Playgroud)