JavaScript String matchAll () -menetelmä palauttaa merkkijonon säännöllisen lausekkeen vastaavuuden tulosten iteraattorin.
Menetelmän syntaksi matchAll()
on:
str.matchAll(regexp)
Tässä str
on merkkijono.
matchAll () -parametrit
matchAll()
Menetelmä vie:
- regexp - Säännöllisen lausekkeen objekti (Argumentti muunnetaan implisiittisesti,
RegExp
jos se ei oleRegExp
objekti)
Huomaa: Jos RegExp
esineellä ei ole /g
lippua, TypeError
heitetään a.
Palautusarvo matchAllista ()
- Palauttaa iteraattorin, joka sisältää ottelut, mukaan lukien sieppaavat ryhmät.
Huomaa : Palautetulla iteraattorin kullakin tuotteella on seuraavat lisäominaisuudet:
groups
- Nimettyjen sieppausryhmien objekti, jonka avaimet ovat niminä ja arvot siepattujen otteluiden mukaisesti.index
- Hakuhakemisto, josta tulos löytyi.input
- Kopio hakumerkkijonosta.
Esimerkki 1: matchAll (): n käyttö
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); )
Tuotos
('JavaScript', hakemisto: 14, input: 'Oppin JavaScriptiä ei Java.', Ryhmät: määrittelemätön) ('Java', hakemisto: 29, input: 'Oppin JavaScriptiä ei Java.', Ryhmät: määrittelemätön)
Tässä palautettu iteraattori toistetaan for… of
silmukan avulla.
Esimerkki 2: MatchAllin käyttäminen ryhmien sieppaamiseen
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'))`) )
Tuotos
Löydetty "nimi on Albert". hakemistossa 3. Siepattu nimi = Albert Löydetty "NAME on Soyuj." indeksissä 24. Siepattu nimi = Soyuj
Tässä olemme käyttäneet säännöllistä lauseketta vastaamaan tiettyä merkkijonoa. Voimme kaapata tiettyjä ryhmiä otteluun käyttämällä matchAll()
paremmin kuin match()
.
Suositeltava lukeminen: JavaScript-merkkijono-osuma ()