Metoda exec
Metoda exec wykonuje wyszukiwanie w
ciągu znaków według zadanego wyrażenia regularnego. Wynikiem zwracanym jest znaleziony
podciąg i jego grupy przechwytujące. Przy tym każde
kolejne wywołanie tej metody
będzie rozpoczynać wyszukiwanie od miejsca,
w którym zakończył się poprzedni
znaleziony podciąg. Jeśli dopasowanie
nie zostanie znalezione - zwracane jest null.
Składnia
wyrażenie_regularne.test(ciąg_znaków);
Przykład
Sprawdźmy działanie 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);
Wynik wykonania kodu:
[12]
[34]
[56]
null
Przykład
Wykorzystajmy metodę w pętli:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Wynik wykonania kodu:
[12]
[34]
[56]
Przykład
Znalezione dopasowania można rozłożyć na grupy przechwytujące:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Wynik wykonania kodu:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Przykład
Za pomocą właściwości lastIndex
można ustawić pozycję, od której należy
rozpocząć wyszukiwanie:
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);
Wynik wykonania kodu:
[34]
[56]
Przykład
Za pomocą modyfikatora y
można ustalić pozycję
rozpoczęcia wyszukiwania:
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);
Wynik wykonania kodu:
null
[12]
Zobacz też
-
metoda
test,
która sprawdza ciąg znaków -
metoda
match,
która wyszukuje dopasowania w ciągu znaków -
metoda
matchAll,
która wyszukuje wszystkie dopasowania w ciągu znaków -
metoda
replace,
która wykonuje wyszukiwanie i zamianę -
metoda
search,
która wykonuje wyszukiwanie -
metoda
split,
która dzieli ciąg znaków