Metoda JavaScript String matchAll () vrací iterátor výsledků shody řetězce s regulárním výrazem.
Syntaxe matchAll()
metody je:
str.matchAll(regexp)
Tady str
je řetězec.
Parametry matchAll ()
matchAll()
Metoda bere v:
- regexp - objekt regulárního výrazu (Argument je implicitně převeden na,
RegExp
pokud se nejedná oRegExp
objekt)
Poznámka: Pokud RegExp
objekt nemá /g
příznak, TypeError
bude hozeno a.
Vrátit hodnotu z matchAll ()
- Vrátí iterátor obsahující shody včetně skupin zachycení.
Poznámka : Každá položka vráceného iterátoru bude mít následující další vlastnosti:
groups
- Objekt pojmenovaných zachycujících skupin, které mají klíče jako jména a hodnoty jako zachycené zápasy.index
- Index vyhledávání, kde byl nalezen výsledek.input
- Kopie vyhledávacího řetězce.
Příklad 1: Použití 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ýstup
('JavaScript', index: 14, input: 'I am learn JavaScript not Java.', Groups: undefined) ('Java', index: 29, input: 'I am learn JavaScript not Java.', Groups: undefined)
Zde je vrácený iterátor iterován pomocí for… of
smyčky.
Příklad 2: Použití matchAll k zachycení skupin
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ýstup
Nalezeno „jmenuje se Albert“. v indexu 3. Zachycené jméno = Albert Nalezeno „JMÉNO je Soyuj.“ v indexu 24. Zachycené jméno = Sojuj
Zde jsme použili regulární výraz, aby odpovídal určité části řetězce. Můžeme zachytit určité skupiny v zápase pomocí matchAll()
lepších než match()
.
Doporučené čtení: Shoda řetězce JavaScript ()