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
regulární_výraz.test(řetězec);
Příklad
Ověříme funkčnost metody:
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ýsledek provedení kódu:
[12]
[34]
[56]
null
Příklad
Použijeme metodu ve smyčce:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Výsledek provedení kódu:
[12]
[34]
[56]
Příklad
Nalezené shody lze rozložit do zachycených skupin:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Výsledek provedení kódu:
[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:
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ýsledek provedení kódu:
[34]
[56]
Příklad
Pomocí modifikátoru y
lze zafixovat pozici
začátku vyhledávání:
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ýsledek provedení kódu:
null
[12]