Metoda exec() obiektu RegExp w JavaScript

Definicja i użycie

exec() Metoda testuje dopasowania w ciągu znaków.

Metoda ta jest ogólnym wzorcem dopasowywania.

Jeśli znaleziono dopasowanie, zwróci tablicę wyników, w przeciwnym razie zwróci null.

Przykład

Przykład 1

Szukaj znaku "e" w ciągu znaków:

let text = "The best things in life are free";
let result = /e/.exec(text);

Spróbuj sam

Przykład 2

Szukaj "Hello" i "W3School" w ciągu znaków w całości:

let text = "Hello world!";
//Znajdź "Hello"
let result1 = /Hello/.exec(text);
//Znajdź "W3School"
let result2 = /W3School/.exec(text);

Spróbuj sam

syntaktyka

regexp.exec(ustawienie atrybutu lastIndex na wskazanym przez niego znaku)

parametr

parametr opis
ustawienie atrybutu lastIndex na wskazanym przez niego znaku wymagane. Ciąg znaków do wyszukiwania.

zwróconej wartości

typ opis
tablica Jeśli znaleziono dopasowanie, tablica zawiera tekst dopasowany, w przeciwnym razie zwraca null.

szczegóły techniczne

zwróconej wartości

tablica, która przechowuje wyniki dopasowania. Jeśli nie znaleziono dopasowania, wartość nullPoniżej przedstawiono format zwracanej tablicy.

wyrzuca

typ opis
TypeError Gdy obiekt wywołujący metodę nie jest RegExp, rzuca wyjątek.

wyjaśnienie

we wszystkich metodach dopasowywania wzorców RegExp i metod dopasowywania Stringexec() jest najbardziej potężny. Jest to ogólna metoda, łatwiejsza w użyciu niż RegExp.test(),String.replace() i String.match() jest skomplikowany.

exec() poszukiwany ciąg znaków ustawienie atrybutu lastIndex na wskazanym przez niego znakuz którego uzyskujemy tekst pasujący do wyrażenia regularnego regexp pasujący tekst. Jeśli exec() Znaleziono pasujący tekst, zwróci on tablicę wyników. W przeciwnym razie, zwróci nullTen element zwracanego tablicy to tekst pasujący do wyrażenia. Pierwszy element to tekst pasujący do wyrażenia. regexp 的第一个子表达式相匹配的文本(如果存在)。第 2 个元素是与 regexp pierwszy podwzorzec dopasowany tekst (jeśli istnieje). Drugi element to tekst dopasowany przez drugi podwzorzec, itd.exec() tekst dopasowany przez drugi podwzorzec, itd. Zwykle atrybut length tablicy oznacza liczbę elementów w tablicy. Oraz poza elementami tablicy i atrybutem length, ustawienie atrybutu lastIndex na wskazanym przez niego znakuzwracają również dwa atrybuty. Atrybut index oznacza pozycję pierwszego znaku dopasowanego tekstu. Atrybut input oznacza exec() . W wywoływaniu nieglobalnego obiektu RegExp String.match() metoda, zwracany przez nią tablica jest taki sam jak

zwracane metody są takie same. exec() w wywoływaniu nieglobalnego regexp metoda, będzie przeprowadzać wyszukiwanie i zwracać powyższe wyniki. Jednak gdyexec() jest wzorcem globalnym regularnym regexp zaczyna wyszukiwanie ciągu od tego znaku. zachowanie jest nieco bardziej złożone. W ustawienie atrybutu lastIndex na wskazanym przez niego znaku string regexp ustawienie atrybutu lastIndex na pozycji pierwszego znaku dopasowanego tekstu. Oznacza to, że można powtarzać wywoływanie exec() metoda do przechodzenia przez wszystkie dopasowane teksty w ciągu. Kiedy exec() już nie znajduje dopasowanego tekstu, zwraca nulli resetuje atrybut lastIndex do 0. Jeśli po ukończeniu jednego dopasowania wzorca w innym tekście chcemy zacząć wyszukiwanie nowego tekstu, musimy ręcznie zresetować atrybut lastIndex do 0.

uwaga, niezależnie od regexp czy jest tryb globalnyexec() dodaje pełne szczegóły do zwracanego przez nie tablicy. To exec() i String.match() różnica, druga z nich zwraca znacznie mniej informacji w trybie globalnym. W rzeczywistości, powtarzane wywoływanie exec() metoda jest jedynym sposobem uzyskania pełnych informacji o dopasowaniu wzorca globalnego.

obsługa przeglądarki

exec() jest cechą ECMAScript1 (ES1).

Wszystkie przeglądarki w pełni obsługują ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
obsługiwane obsługiwane obsługiwane obsługiwane obsługiwane obsługiwane

metody wyszukiwania wyrażeń regularnych

W JavaScript, wyszukiwanie tekstu za pomocą wyrażeń regularnych można wykonać za pomocą różnych metod.

użyciewzorzec (pattern)Jako wzorce regularne, te są najbardziej używane metodami:

przykład opis
text.match(wzorzec) metoda string match()
text.search(wzorzec) metoda string search()
wzorzec.exec(text) metoda RexExp exec()
wzorzec.test(text) metoda RexExp test()