Metoda JavaScript String matchAll () vrne iterator rezultatov ujemanja niza z regularnim izrazom.
Sintaksa matchAll()
metode je:
str.matchAll(regexp)
Tukaj str
je niz.
Parametri matchAll ()
matchAll()
Metoda je v:
- regexp - objekt regularnega izraza (argument je implicitno pretvorjen v,
RegExp
če niRegExp
objekt)
Opomba: Če RegExp
objekt nima /g
zastavice, TypeError
bo 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… of
zanke.
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 ()