Методът JavaScript String matchAll () връща итератор на резултатите от съвпадение на низ спрямо регулярен израз.
Синтаксисът на matchAll()
метода е:
str.matchAll(regexp)
Тук str
е низ.
Параметри matchAll ()
В matchAll()
метода се в:
- regexp - Регулярно изразен обект (Аргументът се преобразува имплицитно,
RegExp
ако не еRegExp
обект)
Забележка: Ако RegExp
обектът няма /g
флага, TypeError
ще бъде хвърлен a .
Върната стойност от matchAll ()
- Връща итератор, съдържащ съвпаденията, включително групите за улавяне.
Забележка : Всеки елемент на върнатия итератор ще има следните допълнителни свойства:
groups
- Обект от поименни групи за улавяне, които имат ключове като имена и стойности като заснети съвпадения.index
- Индексът на търсене, където е намерен резултатът.input
- Копие на низа за търсене.
Пример 1: Използване на 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); )
Изход
('JavaScript', индекс: 14, вход: 'Уча JavaScript не Java.', Групи: undefined) ('Java', индекс: 29, вход: 'Уча JavaScript не Java.', Групи: undefined)
Тук върнатият итератор се повтаря с помощта на for… of
цикъла.
Пример 2: Използване на matchAll за улавяне на групи
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'))`) )
Изход
Намерено „името е Алберт“. при индекс 3. Заловено име = Алберт Намерен „ИМЕТО е Союдж“. при индекс 24. Заловено име = Soyuj
Тук използвахме регулярен израз, за да съответства на определена част от низа. Можем да уловим определени групи в мача, използвайки matchAll()
по-добре от match()
.
Препоръчително четене: Съвпадение на низовете на JavaScript ()