Метод 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. Захоплене ім'я = Soyuj
Тут ми використали регулярний вираз, який відповідає певній частині рядка. Ми можемо захопити певні групи в матчі, використовуючи matchAll()
кращі результати match()
.
Рекомендуємо прочитати: Відповідність рядка JavaScript ()