Javascript String matchAll ()

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

Интересные статьи...