无效的表达式术语'['

时间:2017-05-23 07:14:01

标签: javascript jquery regex

我已经编写了一个用于验证电子邮件的正则表达式,正则表达式就像这样。但它在'@'部分之后的正则表达式字符串中给出了无效表达式项的错误.Below是正则表达式字符串。

/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

由于

2 个答案:

答案 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'));