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

javascriptregulárny_výraz.test(reťazec);

Príklad

Vyskúšame činnosť metódy:

javascriptlet 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:

javascript[12]
[34]
[56]
null

Príklad

Použime metódu v cykle:

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

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Výsledok vykonania kódu:

javascript[12]
[34]
[56] 

Príklad

Nájdené zhody je možné rozložiť podľa zachytených skupín:

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

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Výsledok vykonania kódu:

javascript[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:

javascriptlet 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:

javascript[34]
[56]

Príklad

Pomocou modifikátora y je možné fixovať pozíciu začiatku vyhľadávania:

javascriptlet 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:

javascriptnull
[12]

Pozrite tiež

  • metóda test,
    ktorá kontroluje reťazec
  • metóda match,
    ktorá hľadá zhody v reťazci
  • metóda matchAll,
    ktorá hľadá všetky zhody v reťazci
  • metóda replace,
    ktorá vykonáva vyhľadávanie a nahradzovanie
  • metóda search,
    ktorá vykonáva vyhľadávanie
  • metóda split,
    ktorá rozdeľuje reťazec