86 of 264 menu

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
hucsidfrsv