【问题标题】:Replace only the last occurrance in a string [duplicate]仅替换字符串中的最后一次出现[重复]
【发布时间】:2012-12-01 04:39:25
【问题描述】:

可能重复:
How to replace last occurrence of characters in a string using javascript

这是我的代码:

var newValue= myString.replace(" ", "<br />");

但我只想替换最后一次出现,而不是所有出现。

如:

Hello my name is Marco

成为

Hello my name is<br />Marco

我该怎么做?我认为是正则表达式?

【问题讨论】:

    标签: javascript regex replace


    【解决方案1】:

    使用这个:

    .replace(/\s(?=\S*$)/, "<br />");
    

    【讨论】:

      【解决方案2】:

      如果你想用正则表达式,我只能想到replace(/ (?=[^ ]*$)/, "&lt;br /&gt;")。不是最佳选择,也不适用于更复杂的正则表达式,因为它需要对整个表达式进行“否定”。

      也许用简单的字符串操作会更容易:

      var parts = myString.split(" ");
      if (parts.length > 1)
          var last = parts.pop();
          return parts.join(" ") + "<br />" + last;
      } else
          return myString;
      

      你也可以使用backward search:

      var index = myString.lastIndexOf(" ");
      if (index > -1)
          return myString.substr(0, index) + "<br />" + myString.substr(index+1);
      else
          return myString;
      

      【讨论】:

        【解决方案3】:

        试试这个:

        .replace(/ ([^ ]*)$/, "<br />$1")
        

        demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-15
          • 2014-06-13
          • 2016-02-14
          • 2018-01-18
          • 2011-04-19
          • 2011-07-26
          相关资源
          最近更新 更多