【发布时间】:2016-03-07 21:59:37
【问题描述】:
我发现很多旧线程建议使用 \b 来描述文本文档中的单词,这样您就可以替换整个单词,但我有一些表达式包含可能无法用空格描述的单词,例如
MyFunction(Fred, True, False, MyVariableIsTrue, x==true?a:b)
在这种情况下,我想结束
MyFunction(Fred, 1, 0, MyVariableIsTrue, x==1?a:b)
所以我当前的代码
return expr
.replace(/true/gi, "1")
.replace(/false/gi, "0")
不起作用,因为 MyVariableIsTrue 将变为 MyVariableIs1,而 \b 方法不会转换 x==true?a:b 部分
如何进行正则表达式,以便匹配真假的“整个单词”实例(独立大小写)?谢谢
【问题讨论】:
-
我认为
.replace(/(^|\W)true(?!\w)/g, '$11')应该适用于所有情况。 -
这和公认的解决方案似乎都有效。我有点不相信公认的解决方案确实有效,但是从逻辑上讲,上述方法似乎更安全!谢谢
-
/\btrue\b/gi将起作用,除非您在true之前或之后添加任何非单词,例如/\b=true\b/g。我没有发布我的解决方案,因为我对您的\b方法无法转换... 感到困惑,并且 vks 发布了该解决方案。它仅证明您在测试过程中犯了一些错误,并且由于一些错字而提出了问题。
标签: javascript regex