Capture-Gruppen in der replace-Methode von JavaScript-Regulären Ausdrücken
Bei der Arbeit mit der Methode replace können wir,
wenn wir etwas in einer Capture-Gruppe („Karmann“) in der regulären
Expression erfassen, den Inhalt dieser Gruppe in der Ersetzungszeichenkette
einfügen, indem wir ein Dollarzeichen $ gefolgt von der Nummer
der Gruppe schreiben. Zum Beispiel, $1 - die erste
Capture-Gruppe, $2 - die zweite Capture-Gruppe und so weiter.
Wozu das nützlich ist und wie man es verwendet, schauen wir uns an Beispielen an.
Beispiel
Lasst uns alle Zahlen finden und sie durch dieselben Zahlen, aber in runden Klammern, ersetzen. Dazu ersetzen wir alle gefundenen Zahlen durch sich selbst, aber in Klammern:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
In der Variablen wird folgendes gespeichert:
'(1) (23) (456) xax'
Beispiel
Lasst uns alle Zeichenketten finden, die
Zahlen mit umgebenden 'x' darstellen, und diese
Zahlen durch sich selbst, aber umgeben von '!'-Zeichen, ersetzen:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
In der Variablen wird folgendes gespeichert:
'!1! !23! !456! xax'
Beispiel
Lasst uns die folgende Aufgabe lösen: Gegeben seien Zeichenketten
der Form 'aaa@bbb' - Buchstaben, dann ein @-Zeichen,
dann Buchstaben. Wir müssen die Buchstaben
vor und nach dem @ vertauschen.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
In der Variablen wird folgendes gespeichert:
'bbb@aaa ddd@ccc'
Praktische Aufgaben
Gegeben sei die Zeichenkette:
let str = '12 34 56 78';
Vertauschen Sie die Ziffern in allen zweistelligen Zahlen.
Gegeben sei eine Zeichenkette mit einem Datum:
let str = '31.12.2025';
Wandeln Sie dieses Datum in '2025.12.31' um.