我已经编写了一个用于验证电子邮件的正则表达式,正则表达式就像这样。但它在'@'部分之后的正则表达式字符串中给出了无效表达式项的错误.Below是正则表达式字符串。
/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
由于
答案 0 :(得分:0)
正则表达式正常。您需要转义特殊符号。与 [
一样 \[
您可以使用以下功能:
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
答案 1 :(得分:0)
你的正则表达式工作正常。
您不需要在集合中除[
或]
以外的字符。使用[\w-.]
,而不是[\w-\.]
(只是优化)。
附加说明
如果你使用的是var re = new RegExp("...")
而不是var re = /.../
,那么你需要逃避反斜杠或者它不会起作用:
// Works
var re = /^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/;
console.log(re.test('marty@bbtf.com'));
// Also works
re = new RegExp("^([\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4})?$");
console.log(re.test('marty@bbtf.com'));
// Does NOT work
re = new RegExp("^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$");
console.log(re.test('marty@bbtf.com'));