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] 
}
Задание 1

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.