【问题标题】:Regex to replace a whole word in javascript inside an expression string [duplicate]正则表达式替换表达式字符串中的javascript中的整个单词[重复]
【发布时间】: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


【解决方案1】:
   return expr
    .replace(/\btrue\b/gi, "1")
    .replace(/\bfalse\b/gi, "0")

使用\b,也就是word boundary

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2011-11-19
    • 2017-06-23
    • 2013-01-21
    相关资源
    最近更新 更多