【问题标题】:Why string replace in JS doesn't replace all characters [duplicate]为什么JS中的字符串替换不能替换所有字符[重复]
【发布时间】:2020-05-09 03:41:26
【问题描述】:
"-x-x+x".replace('-', '+')

等于

"+x-x+x"

为什么不替换第二个-?

【问题讨论】:

  • .replace 仅替换第一个实例(字符)。要替换所有实例,您必须使用正则表达式.. console.log('-x-x+x'.replace(/-/g, '+'));
  • 在 StackOverflow 中搜索“[javascript] 替换所有实例”会弹出许多重复的帖子,询问基本相同的问题。
  • @Taplar 它没有回答为什么

标签: javascript string replace str-replace


【解决方案1】:

.replace 只替换它找到的第一个实例。要替换所有这些,请使用正则表达式:

"-x-x+x".replace(/-/g, '+')

注意正则表达式末尾的/g:它表示“全局”模式。没有它,您仍然只会替换第一个实例。

【讨论】:

    【解决方案2】:

    将其转换为正则表达式以替换所有内容。

    console.log("-x-x+x".replace(/-/g, '+'))

    【讨论】:

      【解决方案3】:

      String#replace 的文档中对此进行了解释:

      使用正则表达式:

      '-x-x+x'.replace(/-/g, '+')
      //=> "+x+x+x"
      

      【讨论】:

        猜你喜欢
        • 2012-11-14
        • 2011-10-10
        • 2016-03-01
        • 2021-06-17
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多