Metodas „JavaScript String matchAll ()“ pateikia eilutės atitikimo reguliariajai išraiškai rezultatų iteratorių.
matchAll()
Metodo sintaksė yra tokia:
str.matchAll(regexp)
Čia str
yra eilutė.
„matchAll“ () parametrai
matchAll()
Metodas trunka:
- regexp - taisyklingos išraiškos objektas (argumentas netiesiogiai paverčiamas,
RegExp
jei jis nėraRegExp
objektas)
Pastaba: jei RegExp
objektas neturi /g
vėliavos, TypeError
bus išmesta a.
Grąžinimo vertė iš „matchAll“ ()
- Pateikia iteratorių, kuriame yra atitikmenys, įskaitant fiksavimo grupes.
Pastaba : kiekvienas grąžinto iteratoriaus elementas turės šias papildomas savybes:
groups
- Pavadintų grupių objektas, kurio raktai yra pavadinimai ir vertės, nes užfiksuoti atitikimai.index
- Paieškos, kurioje buvo rastas rezultatas, rodyklė.input
- Paieškos eilutės kopija.
1 pavyzdys: „matchAll“ () naudojimas
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); )
Rezultatas
(„JavaScript“, rodyklė: 14, įvestis: „Aš mokausi„ Java “, o ne„ Java “., Grupės: neapibrėžta) („ Java “, rodyklė: 29, įvestis:„ Aš mokausi „Java“, o ne „Java“., Grupės: neapibrėžta)
Čia grįžtamasis iteratorius kartojamas naudojant for… of
kilpą.
2 pavyzdys: „matchAll“ naudojimas grupėms užfiksuoti
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'))`) )
Rezultatas
Rastas „vardas yra Albertas“. 3 rodyklėje. Užfiksuotas vardas = Albertas Rastas "NAME is Soyuj". rodyklėje 24. Užfiksuotas vardas = Sojuj
Čia mes naudojome reguliarią išraišką, kad atitiktų tam tikrą eilutės dalį. Rungtynėse galime užfiksuoti tam tikras grupes naudodami matchAll()
geriau nei match()
.
Rekomenduojamas skaitymas: „ JavaScript“ eilutės atitiktis ()