Metóda JavaScript String matchAll () vracia iterátor výsledkov zhody reťazca s regulárnym výrazom.
Syntax matchAll()
metódy je:
str.matchAll(regexp)
Tu str
je reťazec.
Parametre matchAll ()
matchAll()
Metóda berie v:
- regexp - objekt s regulárnym výrazom (Argument sa implicitne prevedie na objekt, ktorý
RegExp
nie jeRegExp
objektom)
Poznámka: Ak RegExp
objekt nemá /g
vlajku, TypeError
bude vyhodené a.
Vrátiť hodnotu z matchAll ()
- Vráti iterátor obsahujúci zhody vrátane skupín zachytávania.
Poznámka : Každá položka vráteného iterátora bude mať nasledujúce ďalšie vlastnosti:
groups
- Objekt pomenovaných skupín zachytávajúcich súbory, ktorých názvy sú kľúčmi a hodnoty ako zachytené zápasy.index
- Index vyhľadávania, kde sa našiel výsledok.input
- Kópia vyhľadávacieho reťazca.
Príklad 1: Použitie 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); )
Výkon
('JavaScript', index: 14, vstup: 'Učím sa JavaScript, nie Java.', Skupiny: nedefinované) ('Java', index: 29, vstup: 'Učím sa JavaScript, nie Java.', Skupiny: nedefinované)
Tu je vrátený iterátor iterovaný pomocou for… of
slučky.
Príklad 2: Použitie matchAll na zachytenie skupín
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'))`) )
Výkon
Nájdené „meno je Albert“. v indexe 3. Zachytené meno = Albert Nájdené „NÁZOV je Sojuj.“ v indexe 24. Zachytené meno = Sojuj
Tu sme použili regulárny výraz, ktorý sa zhoduje s určitou časťou reťazca. Určité skupiny v zápase dokážeme zachytiť pomocou matchAll()
lepších ako match()
.
Odporúčané čítanie: Zhoda reťazca JavaScript ()