JavaScript String matchAll () -metoden returnerer en iterator af resultaterne af at matche en streng mod et regulært udtryk.
Metodens syntaks matchAll()
er:
str.matchAll(regexp)
Her str
er en streng.
matchAll () Parametre
Den matchAll()
metode tager i:
- regexp - Et objekt med et regulært udtryk (Argumentet konverteres implicit til,
RegExp
hvis det er et ikke-RegExp
objekt)
Bemærk: Hvis RegExp
objekt ikke har /g
flag, TypeError
kastes en.
Returneringsværdi fra matchAll ()
- Returnerer en iterator, der indeholder kampene inklusive fangstgrupperne.
Bemærk : Den returnerede iterator for hver vare har følgende yderligere egenskaber:
groups
- Et objekt med navngivne fangstgrupper, der har nøgler som navne og værdier, som de fangede matcher.index
- Indekset over søgning, hvor resultatet blev fundet.input
- En kopi af søgestrengen.
Eksempel 1: Brug af 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); )
Produktion
('JavaScript', indeks: 14, input: 'Jeg lærer JavaScript ikke Java.', Grupper: udefineret) ('Java', indeks: 29, input: 'Jeg lærer JavaScript ikke Java.', Grupper: udefineret)
Her gentages den returnerede iterator ved hjælp af for… of
loop.
Eksempel 2: Brug matchAll til at opfange 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'))`) )
Produktion
Fundet "navn er Albert." ved indeks 3. Indfanget navn = Albert Fundet "NAVN er Soyuj." ved indeks 24. Indfanget navn = Soyuj
Her har vi brugt et regulært udtryk til at matche en bestemt del af strengen. Vi kan fange bestemte grupper i kampen ved hjælp af matchAll()
bedre end match()
.
Anbefalet læsning: JavaScript-streng match ()