Baseline Widely available
[Symbol.split]()
㯠RegExp
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ã String.prototype.split
ã«ã»ãã¬ã¼ã¿ã¼ã¨ãã¦æ£è¦è¡¨ç¾ã渡ãããã¨ãã«ã©ã®ããã«åä½ããã®ããæå®ãã¾ãã
class RegExp1 extends RegExp {
[Symbol.split](str, limit) {
const result = RegExp.prototype[Symbol.split].call(this, str, limit);
return result.map((x) => `(${x})`);
}
}
console.log("2016-01-02".split(new RegExp1("-")));
// Expected output: Array ["(2016)", "(01)", "(02)"]
console.log("2016-01-02".split(new RegExp("-")));
// Expected output: Array ["2016", "01", "02"]
æ§æ
regexp[Symbol.split](str)
regexp[Symbol.split](str, limit)
弿°
str
å岿ä½ã®å¯¾è±¡ã
limit
çç¥å¯
æ¤åºãããå岿°ã®å¶éãæå®ããæ´æ°ã [Symbol.split]()
ã¡ã½ããã¯ã this
RegExp ãã¿ã¼ã³ (ã¾ãã¯ä¸è¨ã®æ§æã§ã¯ regexp
) ã«ä¸è´ãããã³ã«ãåå²é
ç®ã®æ°ã limit
ã¨ä¸è´ããããæååã this
ãã¿ã¼ã³ãæºããªããªãã¾ã§ãåå²ãè¡ãã¾ãã
è¦ç´ ã¨ãã¦é¨åæååãå«ãé
å (Array
)ã
ãã®ã¡ã½ãã㯠String.prototype.split()
ã«ããã¦ãRegExp
ãã»ãã¬ã¼ã¿ã¼ã¨ãã¦æ¸¡ãããå ´åã«å
é¨çã«å¼ã³åºããã¾ãããã¨ãã°ã次㮠2 ã¤ã®ä¾ã¯åãçµæãè¿ãã¾ãã
"a-b-c".split(/-/);
/-/[Symbol.split]("a-b-c");
ãã®ã¡ã½ããã¯ãRegExp
ã®ãµãã¯ã©ã¹ã§ split()
ã®åä½ãã«ã¹ã¿ãã¤ãºããããã«åå¨ãã¾ãã
RegExp.prototype[Symbol.split]()
ãã¼ã¹ã¡ã½ããã¯ã次ã®ããã«åä½ãã¾ãã
[Symbol.species]
ã使ç¨ãã¦æ°ããæ£è¦è¡¨ç¾ãæ§ç¯ããå
ã®æ£è¦è¡¨ç¾ã夿´ããå
容ã«ããã¨ããããå§ã¾ãã¾ããg
ï¼ãã°ãã¼ãã«ãï¼ãã©ã°ã¯ç¡è¦ããã y
ï¼ãç²ççãï¼ãã©ã°ã¯å
ã
表示ããã¦ããªãå ´åã§ã常ã«é©ç¨ããã¾ãã/a?/
ï¼ã¯ã空ã®é
åãè¿ãã¾ããããã§ãªãå ´åãæ£è¦è¡¨ç¾ã空æååã«ä¸è´ããªããã° [""]
ãè¿ãã¾ããthis.exec()
ãé£ç¶ãã¦å¼ã³åºããã¨ã§è¡ããã¾ããæ£è¦è¡¨ç¾ã¯å¸¸ã«ç²ççãªã®ã§ãæååã«æ²¿ã£ã¦ç§»åãããã®åº¦ã«ä¸è´ããæååãã¤ã³ããã¯ã¹ããã£ããã£ã°ã«ã¼ããå¾ããã¾ããlastIndex
ãé²ãããã¾ããæ£è¦è¡¨ç¾ã Unicode 対å¿ã§ããã°ãUnicode ã³ã¼ããã¤ã³ãåé²ã¿ã¾ããããã§ãªããã°ã UTF-16 ã³ã¼ãåä½ 1 ã¤åé²ã¿ã¾ããlimit
弿°ãè¶
ãããã¨ã¯ããã¾ããããã®ãããé
åãæ¢ã«åã¾ã£ã¦ããå ´åãæå¾ã®ä¸è´ããã°ã«ã¼ãã¨ãã®ãã£ããã£ã°ã«ã¼ãããã¹ã¦è¿ãé
åã«åå¨ããã¨ã¯éãã¾ãããthis
ã®æ±ãã¨å¼æ°ã®ä¸¦ã³é ãé¤ãã¦ããã®ã¡ã½ãã㯠String.prototype.split()
ã¨ã»ã¨ãã©åãããã«ä½¿ç¨ã§ãã¾ãã
const re = /-/g;
const str = "2016-01-02";
const result = re[Symbol.split](str);
console.log(result); // ["2016", "01", "02"]
ãµãã¯ã©ã¹ã§ [Symbol.split]()
ã使ç¨ãã
æ¢å®ã®åä½ãä¿®æ£ããããã«ãRegExp
ã®ãµãã¯ã©ã¹ã§ [Symbol.split]()
ã¡ã½ããããªã¼ãã¼ã©ã¤ãã§ãã¾ãã
class MyRegExp extends RegExp {
[Symbol.split](str, limit) {
const result = RegExp.prototype[Symbol.split].call(this, str, limit);
return result.map((x) => `(${x})`);
}
}
const re = new MyRegExp("-");
const str = "2016-01-02";
const result = str.split(re); // String.prototype.split 㯠re[Symbol.split]() ãå¼ã³åºã
console.log(result); // ["(2016)", "(01)", "(02)"]
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4