Javascript String matchAll ()

Metoda JavaScript String matchAll () vrne iterator rezultatov ujemanja niza z regularnim izrazom.

Sintaksa matchAll()metode je:

 str.matchAll(regexp)

Tukaj strje niz.

Parametri matchAll ()

matchAll()Metoda je v:

  • regexp - objekt regularnega izraza (argument je implicitno pretvorjen v, RegExpče ni RegExpobjekt)

Opomba: Če RegExpobjekt nima /gzastavice, TypeErrorbo vržen a.

Vrnjena vrednost iz matchAll ()

  • Vrne iterator, ki vsebuje ujemanja, vključno s skupinami za zajemanje.

Opomba : Vsak element vrnjenega iteratorja bo imel naslednje dodatne lastnosti:

  • groups - Predmet imenovanih zajemnih skupin, ki imajo imena kot imena in vrednosti kot zajeta ujemanja.
  • index - indeks iskanja, kjer je bil najden rezultat.
  • input - Kopija iskalnega niza.

Primer 1: Uporaba 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); )

Izhod

 ('JavaScript', indeks: 14, vnos: 'Jaz se učim ne Java.', Skupine: nedefinirano) ('Java', indeks: 29, vnos: 'Jaz se učim ne Java.', Skupine: nedefinirano)

Tu se vrnjeni iterator ponovi z uporabo for… ofzanke.

Primer 2: Uporaba matchAll za zajemanje skupin

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

Izhod

Najdeno "ime je Albert." pri indeksu 3. Ujeto ime = Albert Najdeno "NAME is Soyuj." pri indeksu 24. Ujeto ime = Soyuj

Tu smo uporabili regularni izraz, ki ustreza določenemu delu niza. Na tekmi lahko zajamemo določene skupine z uporabo matchAll()boljših kot match().

Priporočeno branje: ujemanje niza JavaScript ()

Zanimive Članki...