Symbol.matchAll
Symbol.matchAll は、文字列に対する正規表現の一致を生成するイテレーターを返します。この関数は String.prototype.matchAll() メソッドによって呼び出されます。
試してみましょう
説明
このシンボルは String.prototype.matchAll()、特に RegExp.prototype[@@matchAll]() で使用されます。以下の 2 つの例は同じ結果を返します。
js
'abc'.matchAll(/a/);
/a/[Symbol.matchAll]('abc');
このメソッドは、RegExp サブクラス内の一致動作をカスタマイズするために存在します。
Symbol.matchAll のプロパティ属性 |
|
|---|---|
| 書込可能 | 不可 |
| 列挙可能 | 不可 |
| 設定可能 | 不可 |
例
Symbol.matchAll を使用する
js
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"]
その他の例については、String.prototype.matchAll() と RegExp.prototype[@@matchAll]() を参照してください。
仕様
| Specification |
|---|
| ECMAScript Language Specification # sec-symbol.matchall |
ブラウザー実装状況
BCD tables only load in the browser