Symbol.matchAll
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 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"]
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-symbol.matchall> |