Метод JavaScript String matchAll () возвращает итератор результатов сопоставления строки с регулярным выражением.
Синтаксис matchAll()метода:
str.matchAll(regexp)
Вот strстрока.
Параметры matchAll ()
matchAll()Метод принимает в:
- regexp - объект регулярного выражения (аргумент неявно преобразуется в,
RegExpесли он не являетсяRegExpобъектом)
Примечание. Если у RegExpобъекта нет /gфлага, TypeErrorбудет брошен значок.
Возвращаемое значение из 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. Захваченное имя = Союдж
Здесь мы использовали регулярное выражение для сопоставления определенной части строки. Мы можем захватить определенные группы в матче, используя matchAll()лучше чем match().
Рекомендуемая литература: JavaScript String match ()








