W3cubDocs

/JavaScript

Symbol.matchAll

The Symbol.matchAll well-known symbol returns an iterator, that yields matches of the regular expression against a string. This function is called by the String.prototype.matchAll() method.

Description

This Symbol is used for String.prototype.matchAll() and specifically in RegExp.prototype[@@matchAll](). The following two examples return same result:

'abc'.matchAll(/a/);

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

This method exists for customizing match behavior within RegExp subclasses.

Property attributes of Symbol.matchAll
Writable no
Enumerable no
Configurable no

Examples

Using 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"]

See String.prototype.matchAll() and RegExp.prototype[@@matchAll]() for more examples.

Specifications

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
matchAll 73 79 67 No 60 13
Mobile
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
matchAll 73 73 67 52 13 No
Server
Node.js
matchAll 12.0.0

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://wiki.developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/matchAll