javascript - 当作为字符串传入时,为什么这个 RegExp 不起作用?

标签 javascript regex

Ubuntu 10.10 上的 Chrome 9.0.597.83 测试版:

enter image description here

如您所见,该模式在作为字符串传入时不起作用,但在作为 RegExp 对象传入时运行良好。为什么是这样?我需要能够将它作为字符串传递,以便我可以在执行匹配之前对其进行操作。


注意:我刚刚发布了一个与此非常相似的问题......我认为我做错了什么并删除了这个问题。然后当我尝试一些稍微不同的东西时,我又遇到了问题。

最佳答案

问题出在反斜杠 \ 上。这是转义 W 字符。在字符串中,\W 的计算结果为 W。您需要转义反斜杠:

"e c".match(new RegExp('(?:^|\\W)c(?:\\W|$)'))

关于javascript - 当作为字符串传入时,为什么这个 RegExp 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4916610/

相关文章:

javascript - 捕获 block 在节点提取中不起作用

javascript - 如何处理绑定(bind)了单击事件的 div 内的 anchor 而不触发 div 单击事件

javascript regexp 负向后查找在某些情况下不匹配

regex - 否定速记字符类的意外工作

javascript - 将数字始终保留在第一组中

javascript - 如何禁用摩纳哥上下文菜单?

javascript随机溢出或超出范围

javascript - 通过选择不同的选项来改变 margin

python - 使用正则表达式查找函数调用

python - 如何从 Python 中解析 sql 文件?