2009-05-09 18 views

cevap

3

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.

+1

siz olmak istemez miydiniz: str.replace (/^(. *) ((
) *?) $ /, '$ 1 $ 2') son maçta
'u dahil edecek şekilde? –

+0

Buradaki son nokta, çok satırlı için son
Greg

13

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>"); 
+0

'str.replace (/ ([\ s \ S] *)
/," $ 1 "); – hlcs

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

str = str.replaceLast(what, replacement); 
+0

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

İlgili konular