Метод 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 ()