0

可能重复:
如何使用 javascript 替换字符串中最后出现的字符

这是我的代码:

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

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

如 :

Hello my name is Marco

变得

Hello my name is<br />Marco

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

4

3 回答 3

1

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

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

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

您也可以使用向后搜索

var index = myString.lastIndexOf(" ");
if (index > -1)
    return myString.substr(0, index) + "<br />" + myString.substr(index+1);
else
    return myString;
于 2012-12-13T10:08:41.377 回答
1

用这个:

.replace(/\s(?=\S*$)/, "<br />");
于 2012-12-13T10:09:49.673 回答
0

试试这个:

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

演示

于 2012-12-13T10:07:14.087 回答