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

javascriptwyrażenie_regularne.test(ciąg_znaków);

Przykład

Sprawdźmy działanie 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);

Wynik wykonania kodu:

javascript[12]
[34]
[56]
null

Przykład

Wykorzystajmy metodę w pętli:

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

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

Wynik wykonania kodu:

javascript[12]
[34]
[56] 

Przykład

Znalezione dopasowania można rozłożyć na grupy przechwytujące:

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

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

Wynik wykonania kodu:

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

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);

Wynik wykonania kodu:

javascript[34]
[56]

Przykład

Za pomocą modyfikatora y można ustalić pozycję rozpoczęcia wyszukiwania:

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);

Wynik wykonania kodu:

javascriptnull
[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