JavaScript String matchAll () -metoden returnerer en iterator av resultatene av å matche en streng mot et vanlig uttrykk.
Syntaksen til matchAll()
metoden er:
str.matchAll(regexp)
Her str
er en streng.
matchAll () -parametere
Den matchAll()
metoden tar i:
- regexp - Et objekt med vanlig uttrykk (Argumentet konverteres implisitt til
RegExp
hvis det er et ikke-RegExp
objekt)
Merk: Hvis RegExp
objektet ikke har /g
flagget, blir et TypeError
kast kastet.
Returverdi fra matchAll ()
- Returnerer en iterator som inneholder kampene inkludert fangegruppene.
Merk : Den returnerte iteratoren for hvert element vil ha følgende tilleggsegenskaper:
groups
- Et objekt med navngitte fangegrupper som har nøkler som navnene og verdiene som det fanget samsvarer med.index
- Indeksen for søk der resultatet ble funnet.input
- En kopi av søkestrengen.
Eksempel 1: Bruke 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); )
Produksjon
('JavaScript', indeks: 14, input: 'Jeg lærer JavaScript ikke Java.', Grupper: udefinert) ('Java', indeks: 29, input: 'Jeg lærer JavaScript ikke Java.', Grupper: udefinert)
Her blir den returnerte iteratoren iterert over å bruke for… of
løkken.
Eksempel 2: Bruke matchAll til å fange grupper
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'))`) )
Produksjon
Fant "navnet er Albert." ved indeks 3. Fanget navn = Albert Fant "NAVN er Soyuj." ved indeks 24. Fanget navn = Soyuj
Her har vi brukt et vanlig uttrykk for å matche en viss del av strengen. Vi kan fange visse grupper i kampen ved å bruke matchAll()
bedre enn match()
.
Anbefalt lesing: JavaScript String match ()