Symbol.matchAll
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
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:
"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 | |
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Ejemplos
Usando Symbol.matchAll
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
Specification |
---|
ECMAScript® 2025 Language Specification # sec-symbol.matchall |
Compatibilidad con navegadores
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matchAll |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support