Javascript正则表达式-正则表达式对象的字符串

Javascript正则表达式-正则表达式对象的字符串,javascript,regex,Javascript,Regex,我确信我遗漏了一些很小的东西,但我一直没能弄清楚 我有一个带有正则表达式模式的JavaScript变量,但我似乎无法使它与正则表达式类一起工作 以下内容的计算结果始终为false: var value = "someone@something.com"; var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" var re = new RegExp(pattern); re.test(value); 但是,如果我将其更改为正确的正则表达式(通过删除引号

我确信我遗漏了一些很小的东西,但我一直没能弄清楚

我有一个带有正则表达式模式的JavaScript变量,但我似乎无法使它与正则表达式类一起工作

以下内容的计算结果始终为false:

var value = "someone@something.com";
var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
var re = new RegExp(pattern);
re.test(value);
但是,如果我将其更改为正确的正则表达式(通过删除引号并在模式的开始和结束处添加
/
),它将开始工作:

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

由于我总是将模式作为变量中的字符串来获取,因此我无法找出此处缺少的内容。

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

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

天哪,我知道我错过了一件很简单的事情。谢谢