Symbol.matchAll
{{JSRef}}
The Symbol.matchAll
static data property represents the well-known symbol Symbol.matchAll
. The {{jsxref("String.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, see RegExp.prototype[Symbol.matchAll]()
and {{jsxref("String.prototype.matchAll()")}}
.
{{InteractiveExample("JavaScript Demo: Symbol.matchAll")}}
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"]
Value
The well-known symbol Symbol.matchAll
.
{{js_property_attributes(0, 0, 0)}}
Examples
Using 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)));
// ["2016", "01", "02", "2019", "03", "07"]
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Polyfill of
Symbol.matchAll
incore-js
{{jsxref("Symbol.match")}}
{{jsxref("Symbol.replace")}}
{{jsxref("Symbol.search")}}
{{jsxref("Symbol.split")}}
{{jsxref("String.prototype.matchAll()")}}
RegExp.prototype[Symbol.matchAll]()