Javascript String matchAll ()

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

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