Javascript 使用RegExp构造函数导致错误的输出

Javascript 使用RegExp构造函数导致错误的输出,javascript,regex,Javascript,Regex,我有一个用于电子邮件地址验证的正则表达式。它可以作为文本表达式正常工作,但在使用RegExp构造函数时会显示不同的结果 var-emailpattern=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@”]+*)(“+”)(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.+]124;([a-zA Z-0-9]++]; console.log(emailpattern.test)nithin@g

我有一个用于电子邮件地址验证的正则表达式。它可以作为文本表达式正常工作,但在使用
RegExp
构造函数时会显示不同的结果

var-emailpattern=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@”]+*)(“+”)(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.+]124;([a-zA Z-0-9]++];
console.log(emailpattern.test)nithin@gmail.com)//对
var obj=newregexp('^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@”]+*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]}.[1,3}.[1,3}.+]124;([a-zA Z-0-9]+[a-Z]+];

控制台日志(对象测试)nithin@gmail.com“)//false
您需要删除在
new RegExp()
中指定的模式的引号,以避免转义
\
字符的额外开销:

var-emailpattern=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@”]+*)(“+”)(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.+]124;([a-zA Z-0-9]++];
console.log(emailpattern.test)nithin@gmail.com)//对
var obj=new RegExp(/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.+]124;([a-zA 0-Z-0-9]+[a-Z]+];

控制台日志(对象测试)nithin@gmail.com)//false
它起作用了。我删除了引号并使用了正则表达式模式identifier@NithinChandran很乐意帮忙。:)标记为重复?如果我知道它必须是双重逃脱,我一开始就不会问这个问题。