【问题标题】:How do I replace all string values in this JavaScript statement? [duplicate]如何替换此 JavaScript 语句中的所有字符串值? [复制]
【发布时间】:2012-03-21 03:39:40
【问题描述】:

可能重复:
replace all occurrences in a string

我有这个字符串:

"12-3-02"

我想把它转换成:

"12/3/02"

我该怎么做?我试过了:

.replace(/-/,"/")

但这只会替换它找到的第一个。如何替换所有实例?

【问题讨论】:

  • 这不是“jQuery”语句,而是 JavaScript 语句。
  • .replace(/-/g,"/"); // g 代表通用替换
  • 这与 jQuery 无关,.replace() 是字符串方法。
  • @Nicocube: g 代表“全局”替换,而不是“通用”。
  • @Rocket:感谢精度。 ;)

标签: javascript regex


【解决方案1】:

其中之一(使用split,或global RegEx flag):

str = str.split('-').join('/'); // No RegExp needed

str = str.replace(/-/g, '/');   // `g` (global) has to be added.

【讨论】:

  • 我目前无法测试这个,但您需要replace ()split () 吗?
  • @David:不,这就是为什么 Rob 说 其中一个:”
  • 答案可能经过编辑以使其更明确,无论是在我询问时还是之后。 ...那或者我没有仔细阅读。 =/
【解决方案2】:

如果您想用/ 替换所有出现的-,那么在g 指定全局修饰符的地方使用它。

"12-3-02".replace(/-/g,"/");

工作演示 - http://jsfiddle.net/ShankarSangoli/QvbM8/

【讨论】:

    【解决方案3】:

    g(全局)修饰符添加到正则表达式,以匹配所有-s。

    .replace(/-/g,"/")
    

    【讨论】:

      【解决方案4】:

      尝试:

      "12-3-02".replace(/-/g, '/');
      

      【讨论】:

        【解决方案5】:

        这个问题已经提出了大约一千次,但没有人考虑过,在现实世界中,字符可能会出现在您可能没想到的地方。(输入时出现错字或替换部分单词只想替换一个词...

        var reformat = '01-11-2012'.replace(/(([0-9]+)(?=\-))\-(?=[0-9])/g,'$1/');
        

        这只会替换前面和后面有数字的“-”字符。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-15
          • 2022-01-19
          相关资源
          最近更新 更多