Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

Symbol.matchAll

Baseline
Ampliamente disponible

Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde enero de 2020.

El símbolo conocido como Symbol.matchAll devuelve un iterador, que devuelve las coincidencias de la expresión regular con una cadena. Esta función es llamada por el método String.prototype.matchAll().

Pruébalo

const re = /[0-9]+/g;
const str = "2016-01-02|2019-03-07";
const result = re[Symbol.matchAll](str);

console.log(Array.from(result, (x) => x[0]));
// Expected output: Array ["2016", "01", "02", "2019", "03", "07"]

Descripción

Este Symbol se utiliza para String.prototype.matchAll() y específicamente en RegExp.prototype[@@matchAll](). Los dos ejemplos siguientes devuelven el mismo resultado:

js
"abc".matchAll(/a/);

/a/[Symbol.matchAll]("abc");

Este método existe para personalizar el comportamiento de las coincidencias dentro de las subclases RegExp.

Atributos de la propiedad Symbol.matchAll
SobrescribirNo
NumerableNo
ConfigurableNo

Ejemplos

Usando Symbol.matchAll

js
const 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"]

Ver String.prototype.matchAll() y RegExp.prototype[@@matchAll]() para más ejemplos.

Especificaciones

Especificación
ECMAScript® 2027 Language Specification
# sec-symbol.matchall

Compatibilidad con navegadores

Véase también