我有一些正则表达式通过 JSON 对象传给我,如下所示:
{
config: {
regEx: "/^$/"
}
}
我正在尝试将上面的字符串转换为正则表达式,如下所示:
const re = new RegExp(config.regEx);
这可行,但是 RegExp
〜有帮助〜转义 /
字符并返回 //^$//
(不是 /^$/
)
如何在不转义 /
的情况下最好地将字符串转换为正则表达式?
编辑:我无法控制返回的原始字符串。就是这样。
最佳答案
只需删除正则表达式周围的 /
,如下所示:"/^$/"
变为 "^$"
。
当不使用正则表达式构造函数时,正则表达式周围的 /
只是告诉 javascript (v8) 它是正则表达式的方法,与 "
的方式相同告诉 javascript 它是一个字符串。(我明白为什么这可能会让您感到困惑,因为 /^$/.toString()
结果是 "/^$/"
)
要从字符串中删除 /
,请执行以下操作:
config.regEx.replace(/(^\/)|(\/$)/g, '')
关于javascript - 将字符串转换为正则表达式时如何保留\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564413/