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

标签 javascript regex

我确信我错过了一些非常小的东西,但我一直无法弄清楚。

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

以下内容始终评估为 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);

关于Javascript 正则表达式 - 字符串到 RegEx 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589587/

相关文章:

javascript - 将变量从复选框传递给 onclick 函数

javascript - 将文件系统位置解析为可用文件 ://urls in chrome

javascript - Jquery在不使用split的情况下在div内的x个单词后插入html

python - 正则表达式在在线正则表达式解释器中匹配,但在python中不匹配

javascript - 带扩展名的文件名验证

python - 在 python 中命名为非捕获组?

javascript - 为什么 total_loan 不起作用(与 total_interest 相同),以及如何正确显示时间表

javascript - 在 $.get 之后更改属性

javascript - 如何访问 ngOnInit 上的 nativeElements?

javascript - 在 Rails 中从 JavaScript 加载特定的 CSS 文件