这是我的代码:
var newValue= myString.replace(" ", "<br />");
但我只想替换最后一次出现,而不是所有出现。
如 :
Hello my name is Marco
变得
Hello my name is<br />Marco
我该怎么做?我认为正则表达式?
这是我的代码:
var newValue= myString.replace(" ", "<br />");
但我只想替换最后一次出现,而不是所有出现。
如 :
Hello my name is Marco
变得
Hello my name is<br />Marco
我该怎么做?我认为正则表达式?
如果您想使用正则表达式,我只能想到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;
用这个:
.replace(/\s(?=\S*$)/, "<br />");