Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

String.prototype.matchAll

Возвращает все совпадения вместе с группами.

Доступно с: ES2020

Синтаксис

str.matchAll(regexp)

Параметры

ПараметрТипОписание
regexpRegExpРегулярное выражение обязательно с флагом g.

Возвращаемое значение

IteratorИтератор совпадений, у каждого есть группы и позиция.

Примеры

Все пары ключ=значение:

const text = 'a=1, b=2, c=3';
 
for (const match of text.matchAll(/(\w)=(\d)/g)) {
  console.log(match[1], match[2], match.index);
}

Результат:

a 1 0
b 2 5
c 3 10

Совпадения в объект через именованные группы:

const text = 'width=300 height=200';
const entries = [...text.matchAll(/(?<key>\w+)=(?<value>\d+)/g)].map((m) => [m.groups.key, Number(m.groups.value)]);
 
console.log(Object.fromEntries(entries));

Результат:

{
  "width": 300,
  "height": 200
}

Примечания

Без флага g метод выбрасывает TypeError. В отличие от match() с флагом g, сохраняет группы каждого совпадения.

См. также

  • String.prototype.match — Ищет совпадения с регулярным выражением.
  • RegExp.prototype.exec — Ищет совпадение и возвращает подробности: группы и позицию.
  • Named capture groups — Именованные группы — части совпадения с понятными именами.

В учебнике

  • Регулярные выражения — Регулярные выражения в JavaScript для начинающих: шаблоны, флаги, классы символов, проверка, поиск и замена текста.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.