Alle Instanzen eine String in JavaScript ersetzen
-
Verwenden Sie die integrierte JavaScript-Funktion
String.prototype.replaceAll()
, um alle Vorkommen eine String zu ersetzen -
Verwenden Sie einen regulären Ausdruck mit dem Flag
g
, um alle Vorkommen eines Strings in JavaScript zu ersetzen -
Verwendung von
split()
undjoin()
für ältere Browser oder aus Kompatibilitätsgründen
Mit JavaScript können Sie alle Vorkommen eines Zeichens oder einer Teilzeichenfolge in einer Zeichenfolge mit einer Reihe von Methoden ersetzen.
Nicht alle Methoden sind in Bezug auf Geschwindigkeit und Ressourcennutzung gleich, daher ist es wichtig, Ihren Anwendungsfall klar zu definieren, bevor Sie sich für die beste Methode entscheiden. Darüber hinaus hängt die beste Lösung von den Browsern ab, auf die Sie abzielen - oder genauer gesagt von den Browserversionen.
Daher sind ältere Browser möglicherweise nicht in der Lage, neu eingeführte JavaScript-Funktionen zu verstehen. Zum Beispiel ist die Methode replaceAll
die einfachste und am meisten empfohlene Option, aber sie funktioniert nicht mit irgendeiner Internet Explorer-Version. Glücklicherweise gibt es andere Möglichkeiten, wie Sie das gleiche Ergebnis in älteren Browsern erzielen können, wie unten beschrieben.
Verwenden Sie die integrierte JavaScript-Funktion String.prototype.replaceAll()
, um alle Vorkommen eine String zu ersetzen
Es ist bei weitem die einfachste Lösung, die in JavaScript verfügbar ist, zumal es Teil der Standardbibliothek ist. Sie müssen keine eigene Funktion von Grund auf neu erstellen, und diese Methode ist auch erheblich schneller als die meisten anderen Implementierungen.
const my_string = 'abc 123 abc 456 abc 789 abc';
console.log(my_string.replaceAll('abc', 'xyz'));
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"
Übergabe der Ersetzungszeichenfolge als Variable mit der Methode String.prototype.replaceAll()
Das obige Beispiel erfordert, dass Sie sowohl die ursprüngliche Zeichenfolge als auch die Ersetzung manuell als Funktionsargumente eingeben. Falls Sie die Ersetzungszeichenfolge als Variable übergeben möchten, können Sie stattdessen die folgende Methode verwenden:
const my_string = 'abc 123 abc 456 abc 789 abc';
let rep_string = 'xyz';
console.log(my_string.replaceAll('abc', rep_string));
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"
Tatsächlich können Sie beide Argumente auch als Variablen übergeben. Wie zu erwarten, müssen Sie lediglich eine weitere Variable erstellen, um den zu ersetzenden Teilstring zu speichern, und ihn dann als erstes Argument der Methode replaceAll
übergeben.
const my_string = 'abc 123 abc 456 abc 789 abc';
let substring = 'abc';
let rep_string = 'xyz';
console.log(my_string.replaceAll(substring, rep_string));
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"
Verwenden Sie einen regulären Ausdruck mit dem Flag g
, um alle Vorkommen eines Strings in JavaScript zu ersetzen
Eine andere Möglichkeit, dasselbe Ergebnis zu erzielen, ist die Verwendung eines regulären Ausdrucks mit dem Flag g
und der Methode replace()
. Der Nachteil dieser Methode ist, dass sie langsamer sein kann, also versuchen Sie dies zu vermeiden, wenn die Ausführungsgeschwindigkeit in Ihrer Anwendung Priorität hat.
Das g
-Flag steht für global
, und ohne es wird der Code einen TypeError
werfen, wenn Sie versuchen, es auszuführen. Es ist eine Voraussetzung für die Arbeit mit regulären Ausdrucksobjekten und der Methode replace()
.
const my_string = 'abc 123 abc 456 abc 789 abc';
let new_string = my_string.replace(/abc/g, 'xyz');
console.log(new_string)
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"
Verwendung von split()
und join()
für ältere Browser oder aus Kompatibilitätsgründen
Wie oben erwähnt, verstehen ältere Browser neue JavaScript-Funktionen möglicherweise nicht, wie dies bei der Methode replaceAll()
der Fall ist. Sie können in diesen Fällen die gleichen Ergebnisse erzielen, indem Sie stattdessen Ihre Zeichenfolge teilen und verbinden.
Denken Sie daran, dass dies eine ziemlich schlechte Lösung in Bezug auf die Optimierung ist, also vermeiden Sie die Verwendung dieser Methode, wenn Ihr Code nicht mit älterer Software kompatibel sein soll.
const my_string = 'abc 123 abc 456 abc 789 abc';
let new_string = my_string.split('abc').join('xyz');
console.log(new_string);
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"
Es sollte ziemlich offensichtlich sein, dass die allgemeine Lösung darin besteht, split()
für die Zeichenfolge zu verwenden, nach der Sie suchen möchten, und join()
für die Zeichenfolge, durch die Sie sie ersetzen möchten. Um die Dinge noch klarer zu machen, können Sie die Original- und die Ersatzzeichenfolgen als Variablen übergeben, anstatt sie fest zu codieren:
const my_string = 'abc 123 abc 456 abc 789 abc';
original_string = 'abc';
replacement_string = 'xyz';
let new_string = my_string.split(original_string).join(replacement_string);
console.log(new_string);
Ausgabe:
"xyz 123 xyz 456 xyz 789 xyz"