Metoda exec

Metoda exec provádí vyhledávání v řetězci podle zadaného regulárního výrazu. Výsledkem je nalezený podřetězec a jeho zachycené skupiny. Každé další volání této metody začne vyhledávat od místa, ve kterém skončil předchozí nalezený podřetězec. Pokud není nalezena žádná shoda - vrátí se null.

Syntaxe

javascriptregulární_výraz.test(řetězec);

Příklad

Ověříme funkčnost metody:

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ýsledek provedení kódu:

javascript[12]
[34]
[56]
null

Příklad

Použijeme metodu ve smyčce:

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

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

Výsledek provedení kódu:

javascript[12]
[34]
[56] 

Příklad

Nalezené shody lze rozložit do zachycených skupin:

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

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

Výsledek provedení kódu:

javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6] 

Příklad

Pomocí vlastnosti lastIndex lze nastavit pozici, od které se má začít vyhledávat:

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ýsledek provedení kódu:

javascript[34]
[56]

Příklad

Pomocí modifikátoru y lze zafixovat pozici začátku vyhledávání:

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ýsledek provedení kódu:

javascriptnull
[12]

Viz také

  • metoda test,
    která ověřuje řetězec
  • metoda match,
    která hledá shody v řetězci
  • metoda matchAll,
    která hledá všechny shody v řetězci
  • metoda replace,
    která provádí vyhledání a nahrazení
  • metoda search,
    která provádí vyhledávání
  • metoda split,
    která rozděluje řetězec