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:
javascriptlet str = '12 34 56';
Nehmen wir an, wir haben den folgenden regulären Ausdruck:
javascriptlet reg = /\d+/g;
Rufen wir unsere Methode sequenziell für unseren String auf:
javascriptlet 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:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Diese Besonderheit der Methode ist praktisch für die Verwendung in einer Schleife:
javascriptlet 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:
javascriptlet 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:
javascriptlet 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.