关于Javascript正则表达式:Javascript正则表达式 – 字符串到RegEx对象

Javascript regular expression - string to RegEx object

我确信我丢失了一些很小的东西,但我还没弄清楚。

我有一个包含regex模式的javascript变量,但我似乎无法使它与regex类一起工作。

以下总是计算为假:

1
2
3
4
var value ="[email protected]";
var pattern ="^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
var re = new RegExp(pattern);
re.test(value);

但是,如果我把它改成一个合适的regex表达式(去掉引号并在模式的开始和结束处添加/),它就会开始工作:

1
2
3
4
var value ="[email protected]";
var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/
var re = new RegExp(pattern);
re.test(value);

因为我总是在变量中得到一个字符串形式的模式,所以我还没有弄清楚这里缺少什么。


反斜杠是字符串中的特殊字符,需要用另一个反斜杠来转义:

1
2
3
4
var value ="[email protected]";
var pattern ="^\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}$"
var re = new RegExp(pattern);
re.test(value);