正则表达式替换表达式字符串中javascript中的整个单词

正则表达式替换表达式字符串中javascript中的整个单词,javascript,regex,Javascript,Regex,我发现很多旧的线程建议使用\b来描述文本文档中的单词,这样您就可以替换整个单词,但我有一些表达式包含可能不由空格描述的单词,例如 MyFunction(Fred, True, False, MyVariableIsTrue, x==true?a:b) 在这种情况下,我想以 MyFunction(Fred, 1, 0, MyVariableIsTrue, x==1?a:b) 所以我现在的代码 return expr .replace(/true/gi,

我发现很多旧的线程建议使用\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部分

我如何做正则表达式,使其匹配真与假的“整词”实例(独立于大小写)?谢谢


使用
\b
这是
单词边界

我认为应该适用于所有上下文。这和公认的解决方案似乎都有效。我有点怀疑被接受的解决方案是否有效,但从逻辑上讲,上述方案似乎更安全,也许!!谢谢
/\b除非您在
true
之前或之后添加任何非单词,如
/\b=true\b/g
,否则
/\b/gi
将起作用。我没有发布我的解决方案,因为我对您的
\b
方法无法转换感到困惑。。。vks发布了这个解决方案。这只能证明你在测试中犯了一些错误,而这个问题是由于一些打字错误而提出的。
   return expr
    .replace(/\btrue\b/gi, "1")
    .replace(/\bfalse\b/gi, "0")