De exec-methode in JavaScript reguliere expressies

De methode exec voert een zoekopdracht uit in een string. Het resultaat is de gevonden substring en zijn groepen. Bij elke volgende aanroep van deze methode begint de zoekopdracht vanaf de plek waar de vorige gevonden substring eindigde.

Laten we een voorbeeld bekijken. Stel we hebben de volgende string:

javascriptlet str = '12 34 56';

Stel we hebben de volgende reguliere expressie:

javascriptlet reg = /\d+/g;

Laten we sequentieel onze methode voor onze string aanroepen:

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

Na drie aanroepen, omdat er in onze string geen verdere matches met de reguliere expressie zijn, zal de volgende aanroep van de methode null teruggeven:

javascriptlet res4 = reg.exec(str);
console.log(res4); // null

Deze eigenschap van de methode is handig om te gebruiken in een lus:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56] 
}

Je kunt niet alleen de match vinden, maar deze ook ontbinden in groepen:

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

Gegeven de volgende string:

javascriptlet str = '12:37:57 15:48:58 17:59:59';

Vind hierin alle substrings met tijd en ontbind voor elke gevonden match uren, minuten en seconden in groepen.