我确信我错过了一些非常小的东西,但我一直无法弄清楚。
我有一个带有正则表达式模式的 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/