仅替换字符串中的最后一个匹配项

时间:2012-12-13 10:01:06

标签: javascript regex replace

  

可能重复:
  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

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

3 个答案:

答案 0 :(得分:1)

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

使用简单的字符串操作可能更容易:

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;

答案 1 :(得分:1)

使用它:

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

答案 2 :(得分:0)

试试这个:

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

demo