[英]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.