5465 Stimmen

Ersetzen aller Vorkommen einer Zeichenkette in JavaScript

Ich habe diese Zeichenfolge in meinem JavaScript-Code:

"Test abc test test abc test test test abc test test abc"

Tun:

str = str.replace('abc', '');

Scheint nur das erste Vorkommen von abc in der obigen Zeichenfolge.

Wie kann ich die alle Vorkommnisse davon?

14voto

zdennis Punkte 177
while (str.indexOf('abc') !== -1)
{
    str = str.replace('abc', '');
}

13voto

mostafa elmadany Punkte 131

Wenn die Zeichenfolge ein ähnliches Muster enthält wie abccc können Sie dies verwenden:

str.replace(/abc(\s|$)/g, "")

13voto

Thomas Orlita Punkte 1438

Ab August 2020 gibt es eine Vorschlag für Stufe 4 zu ECMAScript, das die replaceAll Methode zu String .

Es wird jetzt unterstützt in Chrome 85+, Edge 85+, Firefox 77+, Safari 13.1+ .

Die Verwendung ist dieselbe wie bei der replace Methode:

String.prototype.replaceAll(searchValue, replaceValue)

Hier ist ein Beispiel für die Verwendung:

'Test abc test test abc test.'.replaceAll('abc', 'foo'); // -> 'Test foo test test foo test.'

Es wird unterstützt in die meisten modernen Browser , aber es gibt Polyfills:

Es wird unterstützt in der V8 Motor hinter einer experimentellen Flagge --harmony-string-replaceall . Lesen Sie mehr über die V8-Website .

13voto

Oliver M Grech Punkte 2816

Nach mehreren Versuchen und vielen Fehlschlägen habe ich herausgefunden, dass die untenstehende Funktion die beste Lösung zu sein scheint, wenn es um Browserkompatibilität und Benutzerfreundlichkeit geht. Dies ist die einzige funktionierende Lösung für ältere Browser, die ich gefunden habe. (Ja, auch wenn alte Browser nicht mehr empfohlen werden und veraltet sind, machen einige ältere Anwendungen immer noch regen Gebrauch von OLE-Browsern (z. B. alte VB6-Anwendungen oder Excel-xlsm-Makros mit Formularen)

Wie auch immer, hier ist die einfache Funktion.

function replaceAll(str, match, replacement){
   return str.split(match).join(replacement);
}

12voto

Black Punkte 15156

Die bisherigen Antworten sind viel zu kompliziert. Verwenden Sie einfach die Ersetzen-Funktion wie folgt:

str.replace(/your_regex_pattern/g, replacement_string);

Beispiel:

var str = "Test abc test test abc test test test abc test test abc";

var res = str.replace(/[abc]+/g, "");

console.log(res);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X