Die exec-Methode in JavaScript Regex
Die Methode exec führt eine Suche in einem
String durch. Als Ergebnis werden der gefundene
Teilstring und seine Gruppen zurückgegeben. Dabei
wird jeder nachfolgende Aufruf dieser Methode
die Suche an der Stelle beginnen,
an der der vorherige gefundene
Teilstring aufgehört hat.
Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben den folgenden String:
let str = '12 34 56';
Nehmen wir an, wir haben den folgenden regulären Ausdruck:
let reg = /\d+/g;
Rufen wir unsere Methode sequenziell für unseren String auf:
let res1 = reg.exec(str);
console.log(res1[0]); // 12
let res2 = reg.exec(str);
console.log(res2[0]); // 34
let res3 = reg.exec(str);
console.log(res3[0]); // 56
Nach drei Aufrufen, da es in unserem
String keine weiteren Übereinstimmungen mit dem Regex gibt,
wird der nächste Aufruf der Methode
null zurückgeben:
let res4 = reg.exec(str);
console.log(res4); // null
Diese Besonderheit der Methode ist praktisch für die Verwendung in einer Schleife:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Man kann nicht nur die Übereinstimmung finden, sondern sie auch in Gruppen aufteilen:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6]
}
Gegeben ist der folgende String:
let str = '12:37:57 15:48:58 17:59:59';
Finden Sie alle Teilstrings mit Uhrzeiten darin und teilen Sie für jede gefundene Uhrzeit Stunden, Minuten und Sekunden in Gruppen auf.