Metóda exec v regulárnych výrazoch JavaScript
Metóda exec vykonáva vyhľadávanie v
reťazci. Výsledkom je nájdený
podreťazec a jeho zachytené skupiny.
Každé nasledujúce volanie tejto metódy
začne vyhľadávanie od miesta,
v ktorom skončil predchádzajúci
nájdený podreťazec.
Pozrime sa na príklad. Majme nasledujúci reťazec:
let str = '12 34 56';
Majme nasledujúci regulárny výraz:
let reg = /\d+/g;
Volajme postupne našu metódu pre náš reťazec:
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
Po troch volaniach, keďže v našom
reťazci už nie sú žiadne ďalšie zhody s regulárnym výrazom,
nasledujúce volanie metódy vráti
null:
let res4 = reg.exec(str);
console.log(res4); // null
Túto vlastnosť metódy je vhodné použiť v cykle:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Je možné nájsť nielen zhodu, ale aj rozložiť ju do zachytených skupín:
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]
}
Daný je nasledujúci reťazec:
let str = '12:37:57 15:48:58 17:59:59';
Nájdite v ňom všetky podreťazce s časom a pre každý nájdený rozložte hodiny, minúty a sekundy do zachytených skupín.