Metoden exec i regulære uttrykk i JavaScript

Metoden exec utfører et søk i en streng. Resultatet returnerer den funnet delen av strengen og dens "capture groups" (fangstgrupper). Hver etterfølgende kall til denne metoden vil starte søket fra det stedet der den forrige funnet delen av strengen sluttet.

La oss se på et eksempel. Anta at vi har følgende streng:

javascriptlet str = '12 34 56';

Anta at vi har følgende regulære uttrykk:

javascriptlet reg = /\d+/g;

La oss sekvensielt kalle vår metode for vår streng:

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

Etter tre kall, siden det i vår streng ikke er flere treff med det regulære uttrykket, vil neste kall til metoden returnere null:

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

Denne egenskapen til metoden er praktisk å bruke i en løkke:

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

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

Man kan finne ikke bare treffet, men også dele det opp i "capture groups" (fangstgrupper):

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

Følgende streng er gitt:

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

Finn alle delstrenger med klokkeslett i den og for hvert funnet, del opp timer, minutter og sekunder i "capture groups" (fangstgrupper).