Ciąg znaków JavaScript matchAll ()

Metoda JavaScript String matchAll () zwraca iterator wyników dopasowania ciągu do wyrażenia regularnego.

Składnia matchAll()metody to:

 str.matchAll(regexp)

Tutaj strjest sznurek.

matchAll () Parametry

matchAll()Sposób odbywa się:

  • regexp - obiekt wyrażenia regularnego (Argument jest niejawnie konwertowany na, RegExpjeśli nie jest RegExpobiektem)

Uwaga: jeśli RegExpobiekt nie ma /gflagi, TypeErrorzostanie wyrzucony.

Wartość zwracana z matchAll ()

  • Zwraca iterator zawierający dopasowania, w tym grupy przechwytywania.

Uwaga : każdy element zwracanego iteratora będzie miał następujące dodatkowe właściwości:

  • groups - Obiekt nazwanych grup przechwytywania z kluczami jako nazwami i wartościami jako przechwycone dopasowania.
  • index - indeks wyszukiwania, w którym znaleziono wynik.
  • input - kopia wyszukiwanego ciągu.

Przykład 1: Używanie matchAll ()

 const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )

Wynik

 ('JavaScript', indeks: 14, wejście: 'Uczę się JavaScript, a nie Java.', Grupy: nieokreślone) ('Java', indeks: 29, wejście: 'Uczę się JavaScript, a nie Java.', Grupy: niezdefiniowane)

W tym przypadku zwracany iterator jest iterowany za pomocą for… ofpętli.

Przykład 2: Używanie matchAll do przechwytywania grup

 const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )

Wynik

Znaleziono „name is Albert”. w indeksie 3. Przechwycone imię = Albert Znaleziono „NAZWA to Soyuj”. pod indeksem 24. Przechwycona nazwa = Soyuj

Tutaj użyliśmy wyrażenia regularnego, aby dopasować określoną część ciągu. Możemy przechwytywać określone grupy w meczu, używając matchAll()lepszego niż match().

Zalecana lektura: JavaScript String match ()

Interesujące artykuły...