簡體   English   中英

如何在javascript中替換最后一個單詞?

[英]how to replace last occurrence of a word in javascript?

例如:

var str="<br>hi<br>hi";

替換最后一個(第二個) <br>

變成"<br>hihi"

我試過了:

str.replace(/<br>(.*?)$/,\1);

但這是錯的。 什么是正確的版本?

你可以使用量詞貪婪的事實:

str.replace(/(.*)<br>/, "$1");

但缺點是它會導致回溯。

另一個解決方案是拆分字符串,將最后兩個元素放在一起然后連接部分:

var parts = str.split("<br>");
if (parts.length > 1) {
    parts[parts.length - 2] += parts.pop();
}
str = parts.join("<br>");

我想你想要這個:

str.replace(/^(.*)<br>(.*?)$/, '$1$2')

這貪婪地匹配從開始到<br> ,然后是<br>所有內容,然后不合理地匹配所有內容到最后。

String.prototype.replaceLast = function(what, replacement) { 
    return this.replace(new RegExp('^(.*)' + what + '(.*?)$'), '$1' + replacement + '$2');
}

str = str.replaceLast(what, replacement);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM