Javascript string podudaranjeSve ()

Metoda JavaScript String matchAll () vraća iterator rezultata podudaranja niza s regularnim izrazom.

Sintaksa matchAll()metode je:

 str.matchAll(regexp)

Evo, strniz je.

parametri matchAll ()

matchAll()Postupak uzima u:

  • regexp - objekt regularnog izraza (argument se implicitno pretvara RegExpako nije RegExpobjekt)

Napomena: Ako RegExpobjekt nema /gzastavicu, TypeErrorbacit će se a.

Povratna vrijednost iz matchAll ()

  • Vraća iterator koji sadrži podudaranja, uključujući grupe za hvatanje.

Napomena : Svaki vraćeni iterator ima sljedeća dodatna svojstva:

  • groups - Objekt imenovanih grupa za hvatanje koje imaju ključeve kao imena i vrijednosti kao uhvaćene podudarnosti.
  • index - indeks pretraživanja gdje je pronađen rezultat.
  • input - Kopija niza za pretraživanje.

Primjer 1: Korištenje 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); )

Izlaz

 ('JavaScript', indeks: 14, ulaz: 'Ja učim JavaScript ne Java.', Grupe: nedefinirano) ('Java', indeks: 29, ulaz: 'Učim JavaScript ne Java.', Grupe: nedefinirano)

Ovdje se vraćeni iterator ponavlja putem for… ofpetlje.

Primjer 2: Korištenje matchAll za hvatanje grupa

 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'))`) )

Izlaz

Pronađeno je "ime je Albert". na indeksu 3. Uhvaćeno ime = Albert Pronađen "IME je Soyuj." na indeksu 24. Snimljeno ime = Soyuj

Ovdje smo upotrijebili regularni izraz za podudaranje određenog dijela niza. Možemo zabilježiti određene skupine na utakmici koristeći matchAll()bolje od match().

Preporučeno čitanje: Podudaranje JavaScript niza ()

Zanimljivi članci...