2009-05-09 15 views

Antwort

3

Ich glaube, Sie dies wünschen:

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

Das paßt Gierig alles von Anfang an ein <br>, dann einem <br>, dann paßt ungreedily alles bis zum Ende.

+1

Wouldnt Sie es sein wollen: str.replace (/^(. *) ((
) *?) $ /, '$ 1 $ 2') um die
in der letzten Übereinstimmung einzuschließen? –

+0

Die ganze Idee ist, die letzte
Greg

13

können Sie die Tatsache nutzen, dass quantifiers gierig sind:

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

Aber der Nachteil ist, dass es Rückzieher bewirkt.

Eine andere Lösung wäre die Zeichenfolge aufzuteilen, legen Sie die letzten beiden Elemente zusammen und kommen dann die Teile:

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 ");' für Multiline. – hlcs

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

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

Eine Antwort, die ausschließlich aus Code mit keiner oder wenig Erklärung besteht, macht es für zukünftige Besucher schwierig zu verstehen, welchen Ansatz der Fragesteller nehmen sollte und warum Ihre Antwort rentabel ist. Bitte fügen Sie Ihrem Code Erläuterungen hinzu. – Xufox

Verwandte Themen