Symbol.matchAll

Добревідомий символ Symbol.matchAll повертає ітератор, який видає збіги регулярного виразу з рядком. Ця функція викликається методом String.prototype.matchAll().

Опис

Цей символ використовується для String.prototype.matchAll() та зокрема у RegExp.prototype[@@matchAll](). Наступні два приклади повертають однаковий результат:

'абв'.matchAll(/а/);

/а/[Symbol.matchAll]('абв');

Цей метод існує для налаштування поведінки пошуку збігів всередині підкласів RegExp.

Атрибути поля Symbol.matchAll
Доступний для запису ні
Доступний для переліку ні
Доступний для налаштування ні

Приклади

Використання Symbol.matchAll

let re = /[0-9]+/g;
let str = '2016-01-02|2019-03-07';

const numbers = {
  *[Symbol.matchAll] (str) {
    for (const n of str.matchAll(/[0-9]+/g))
      yield n[0];
  }
};

console.log(Array.from(str.matchAll(numbers)));
//  Array ["2016", "01", "02", "2019", "03", "07"]

Дивіться більше прикладів у String.prototype.matchAll() та RegExp.prototype[@@matchAll]().

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також