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 January 2020.
TheSymbol.matchAll static data property represents thewell-known symbolSymbol.matchAll. TheString.prototype.matchAll() method looks up this symbol on its first argument for the method that returns an iterator, that yields matches of the current object against a string.
For more information, seeRegExp.prototype[Symbol.matchAll]() andString.prototype.matchAll().
In this article
Try it
const re = /\d+/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"]Value
The well-known symbolSymbol.matchAll.
Property attributes ofSymbol.matchAll | |
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
Examples
>Using Symbol.matchAll
js
const str = "2016-01-02|2019-03-07";const numbers = { *[Symbol.matchAll](str) { for (const n of str.matchAll(/\d+/g)) yield n[0]; },};console.log(Array.from(str.matchAll(numbers)));// ["2016", "01", "02", "2019", "03", "07"]Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.matchall> |