Ubuntu 10.10 上的 Chrome 9.0.597.83 测试版:
如您所见,该模式在作为字符串传入时不起作用,但在作为 RegExp 对象传入时运行良好。为什么是这样?我需要能够将它作为字符串传递,以便我可以在执行匹配之前对其进行操作。
注意:我刚刚发布了一个与此非常相似的问题......我认为我做错了什么并删除了这个问题。然后当我尝试一些稍微不同的东西时,我又遇到了问题。
最佳答案
问题出在反斜杠 \
上。这是转义 W
字符。在字符串中,\W
的计算结果为 W
。您需要转义反斜杠:
"e c".match(new RegExp('(?:^|\\W)c(?:\\W|$)'))
关于javascript - 当作为字符串传入时,为什么这个 RegExp 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4916610/