JavaScript-Äquivalent zu PHPs preg_replace

73

Ich verwende eine einfache Regex, um Break-Tags durch Zeilenumbrüche zu ersetzen:

br_regex = /<br>/;
input_content = input_content.replace(br_regex, "\n");

Dies ersetzt nur die erste Instanz eines break-Tags, aber ich muss alle ersetzen. preg_match_all()würde den Trick in PHP machen, aber ich würde gerne das JavaScript-Äquivalent kennen.

Ryonlife
quelle
3
Da Sie nicht mit einem Regex-Muster übereinstimmen müssen, sollten Sie in PHP str_replace () anstelle von preg_match_all () für Ihr Beispiel verwenden: $ str = str_replace ('<br>', "\ n", $ str);
Scronide
Sie sollten den Titel wirklich ändern, indem Sie preg_replace und nicht preg_match_all sagen. Dies ist verwirrend und hilft bei der Suche nicht
iBobo

Antworten:

134

Verwenden Sie das globale Flag g:

foo.replace(/<br>/g,"\n")
Annakata
quelle
18

JS-Redewendung für globales Ersetzen ohne Regexp:

input_content.split('<br>').join('\n')
Bobince
quelle
Ich fühle mich schmutzig damit, aber es funktioniert und ist der einzige Weg, wenn der Regex-Ausdruck zur Basis 64 dekodiert ist. TY :)
JRsz
Hallo @bobince, Asker wollte eine RegEx-basierte Lösung. Warum antwortest du darauf?
Tamim
2
@ Tamim Die Regex-Lösung wurde bereits angegeben. Dies ist eine Alternative, da für den einfachen String-Ersatz kein regulärer Ausdruck erforderlich ist.
Bobince