Metode JavaScript String matchAll () atgriež rezultātu atkārtojumu, kas saistīts ar virknes atbilstību regulārajai izteiksmei.
Metodes sintakse matchAll()
ir šāda:
str.matchAll(regexp)
Šeit str
ir virkne.
matchAll () parametri
matchAll()
Metode ņem in:
- regexp - regulāras izteiksmes objekts (arguments netieši tiek pārveidots par,
RegExp
ja tas navRegExp
objekts)
Piezīme: Ja RegExp
objektam nav /g
karodziņa, TypeError
tiks izmests a.
Atgriezeniskā vērtība no matchAll ()
- Atgriež atkārtotāju, kurā ir sērkociņi, ieskaitot tveršanas grupas.
Piezīme . Katram atgrieztā iteratora vienumam būs šādas papildu īpašības:
groups
- Nosauktu tveršanas grupu objekts, kura atslēgas ir nosaukumi un vērtības, kā tvertie sakrīt.index
- meklēšanas indekss, kur tika atrasts rezultāts.input
- Meklēšanas virknes kopija.
1. piemērs: matchAll () izmantošana
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); )
Rezultāts
('JavaScript', indekss: 14, ievade: 'Es mācos JavaScript, nevis Java.', Grupas: nedefinēts) ('Java', indekss: 29, ievade: 'Es mācos JavaScript, nevis Java.', Grupas: nedefinēts)
Šeit atgrieztais atkārtotājs tiek atkārtots, izmantojot for… of
cilpu.
2. piemērs: matchAll izmantošana grupu tveršanai
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'))`) )
Rezultāts
Atrasts "vārds ir Alberts". 3. indeksā. Uzņemtais vārds = Alberts Atrasts "NAME is Soyuj". indeksā 24. Tvertais vārds = Sojuj
Šeit mēs izmantojām regulāru izteiksmi, lai saskaņotu noteiktu virknes daļu. Mēs varam tvert dažas grupas mačā, izmantojot matchAll()
labāk nekā match()
.
Ieteicamā literatūra: JavaScript virknes atbilstība ()