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("-")));
// 颿è¾åºï¼Array ["(2016)", "(01)", "(02)"]
console.log("2016-01-02".split(/-/));
// 颿è¾åºï¼Array ["2016", "01", "02"]
è¯æ³
regexp[Symbol.split](str)
regexp[Symbol.split](str, limit)
åæ°
str
å岿ä½çç®æ ã
limit
å¯é
ä¸ä¸ªæå®è¦æ¥æ¾çå岿¬¡æ°çä¸éçæ´æ°ã[Symbol.split]()
æ¹æ³ä»ç¶ä¼å¯¹ this
æ£åè¡¨è¾¾å¼æ¨¡å¼ï¼æä¸è¿°è¯æ³ä¸ç regexp
ï¼çæ¯ä¸ªå¹é
项è¿è¡åå²ï¼ç´å°åå²çå
ç´ æ°éè¾¾å° limit
éå¶ï¼æè
å符串ä¸ä¸åå¹é
该模å¼ã
ä¸ä¸ªå
å«åå符串ä½ä¸ºå
ç´ ç Array
ãæè·ç»ä¹ä¼è¢«å
å«å¨å
ã
å½ RegExp
ä½ä¸ºåéç¬¦ä¼ å
¥æ¶ï¼String.prototype.split()
ä¼å¨å
é¨è°ç¨æ¤æ¹æ³ãä¾å¦ï¼ä¸é¢ç两个示ä¾è¿åç¸åçç»æã
"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 ç å
ãlimit
åæ°ï¼å¦ææçè¯ï¼ï¼åæ¶ä¼å°½å¯è½æ¥è¿è¯¥éå¶ãå æ¤ï¼å¦ææ°ç»å·²æ»¡ï¼æåä¸ä¸ªå¹é
项åå
¶æè·ç»å¯è½ä¸ä¼å
¨é¨åºç°å¨è¿åçæ°ç»ä¸ãè¯¥æ¹æ³çç¨æ³å ä¹ä¸ String.prototype.split()
ç¸åï¼ä¸åä¹å¤å¨äº this
对象ä¸åä¸åæ°é¡ºåºä¹ææåºå«ã
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