Metóda exec
Metóda exec vykonáva vyhľadávanie v
reťazci podľa zadaného regulárneho výrazu. 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. Ak sa zhoda
nenájde - vráti sa null.
Syntax
regulárny_výraz.test(reťazec);
Príklad
Vyskúšame činnosť metódy:
let str = '12 34 56';
let reg = /\d+/g;
let res1 = reg.exec(str);
console.log(res1);
let res2 = reg.exec(str);
console.log(res2);
let res3 = reg.exec(str);
console.log(res3);
let res4 = reg.exec(str);
console.log(res4);
Výsledok vykonania kódu:
[12]
[34]
[56]
null
Príklad
Použime metódu v cykle:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Výsledok vykonania kódu:
[12]
[34]
[56]
Príklad
Nájdené zhody je možné rozložiť podľa zachytených skupín:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Výsledok vykonania kódu:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Príklad
Pomocou vlastnosti lastIndex
je možné nastaviť pozíciu, od ktorej sa má
začať vyhľadávanie:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Výsledok vykonania kódu:
[34]
[56]
Príklad
Pomocou modifikátora y
je možné fixovať pozíciu
začiatku vyhľadávania:
let str = '12 34 56';
let reg = /\d+/y;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Výsledok vykonania kódu:
null
[12]