Symbol.matchAll

Esta tradução está incompleta. Ajude a traduzir este artigo em inglês

O símbolo Symbol.matchAll é conhecido por retornar um iterador, que produz conrrespondências de uma expressão regular com uma string. Essa função é usada pelo método String.prototype.matchAll().

Descrição

Esse símbolo é usado pelo String.prototype.matchAll() e especificado no RegExp.prototype[@@matchAll](). Os próximos dois exemplos retornam o mesmo resultado:

'abc'.matchAll(/a/);

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

Esse método existe para costumizar o comportamento conrrespondente com as subclasses RegExp.

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

Exemplos

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

Veja String.prototype.matchAll()RegExp.prototype[@@matchAll]() para mais exemplos.

Especificações

Especificação
ECMAScript (ECMA-262)
The definition of 'Symbol.matchAll' in that specification.

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
matchAllChrome Full support 73Edge Full support 79Firefox Full support 67IE No support NoOpera Full support 60Safari Full support 13WebView Android Full support 73Chrome Android Full support 73Firefox Android Full support 67Opera Android Full support 52Safari iOS Full support 13Samsung Internet Android No support Nonodejs Full support 12.0.0

Legend

Full support  
Full support
No support  
No support

Veja também