: yerinejavascript'te bir kelimenin son geçtiği yeri nasıl değiştirilir? örneğin
var str="<br>hi<br>hi";
son (ikinci) <br>
denedim
"<br>hihi"
içine
str.replace(/<br>(.*?)$/,\1);
ama bu yanlış. Doğru sürüm nedir?
: yerinejavascript'te bir kelimenin son geçtiği yeri nasıl değiştirilir? örneğin
var str="<br>hi<br>hi";
son (ikinci) <br>
denedim
"<br>hihi"
içine
str.replace(/<br>(.*?)$/,\1);
ama bu yanlış. Doğru sürüm nedir?
Bunu istiyorum düşünüyorum:
str.replace(/^(.*)<br>(.*?)$/, '$1$2')
Bu açgözlülükle ungreedily sonra, o zaman <br>
, bir <br>
baştan her şeyi eşleşen sonuna kadar her şeyi ile eşleşir.
Sen nicelik açgözlü olduğu gerçeğini kullanabilirsiniz:
str.replace(/(.*)<br>/, "$1");
Ama dezavantajı geri çark neden olacaktır.
diğer çözüm parçaları, dize bölmek birlikte son iki unsurları koymak ve daha sonra katılmak için olacaktır:
var parts = str.split("<br>");
if (parts.length > 1) {
parts[parts.length - 2] += parts.pop();
}
str = parts.join("<br>");
'str.replace (/ ([\ s \ S] *)
/," $ 1 "); –
hlcs
String.prototype.replaceLast = function(what, replacement) {
return this.replace(new RegExp('^(.*)' + what + '(.*?)$'), '$1' + replacement + '$2');
}
str = str.replaceLast(what, replacement);
Sadece küçük bir açıklamadan oluşan bir koddan oluşan bir cevap, gelecekteki ziyaretçilerin yaklaşması zor olan yaklaşımı ve ziyaretçilerin cevabının neden geçerli olduğunu anlamakta güçlük çeker. Lütfen kodunuza açıklama ekleyin. – Xufox
siz olmak istemez miydiniz: str.replace (/^(. *) ((
) *?) $ /, '$ 1 $ 2') son maçta
'u dahil edecek şekilde? –
Buradaki son nokta, çok satırlı için son
– Greg