Javascript 如何在此正则表达式中转义字符?

Javascript 如何在此正则表达式中转义字符?,javascript,regex,jslint,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); }; 您使用的正则表达式是有效的。但我猜JSLin

我有这个功能,将验证电子邮件地址。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"

您使用的正则表达式是有效的。但我猜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.\uz%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$/i
。我只是稍微整理了一下,在第一个字段中添加了
+
%

我没有立即看到需要转义的内容。您可能想尝试使用正则表达式的
/^[A-Z0-9.\uz%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$/i
。我只是稍微整理了一下,在第一个字段中添加了
+
%

这已经回答了,但是作为一个a端Rexex。Escape是一个用于转义正则表达式中特殊字符的便捷函数。这已经回答了,但是作为一个a端Rexex。Escape是一个用于转义正则表达式中特殊字符的便捷函数。