このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Symbol.matchAll

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。

Symbol.matchAll は静的データプロパティで、ウェルノウンシンボルSymbol.matchAll を表します。String.prototype.matchAll() メソッドは最初の引数に対して、文字列に対する現在のオブジェクトの照合を行うイテレーターを返すメソッドを、このシンボルで探します。

詳しくは、RegExp.prototype[Symbol.matchAll]() および String.prototype.matchAll() を参照してください。

試してみましょう

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]));
// 予想される結果: Array ["2016", "01", "02", "2019", "03", "07"]

ウェルノウンシンボル Symbol.matchAll です。

Symbol.matchAll のプロパティ属性
書込可能不可
列挙可能不可
設定可能不可

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

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-symbol.matchall

ブラウザーの互換性

関連情報