Baseline Widely available
Symbol.match
æå®äºå¹é
çæ¯æ£å表达å¼è䏿¯å符串ãString.prototype.match()
æ¹æ³ä¼è°ç¨æ¤å½æ°ã
const regexp1 = /foo/;
// console.log('/foo/'.startsWith(regexp1));
// Expected output (Chrome): Error: First argument to String.prototype.startsWith must not be a regular expression
// Expected output (Firefox): Error: Invalid type: first can't be a Regular Expression
// Expected output (Safari): Error: Argument to String.prototype.startsWith cannot be a RegExp
regexp1[Symbol.match] = false;
console.log("/foo/".startsWith(regexp1));
// Expected output: true
console.log("/baz/".endsWith(regexp1));
// Expected output: false
æè¿°
æ¤å½æ°è¿ç¨äºæ è¯å¯¹è±¡æ¯å¦å
·ææ£å表达å¼çè¡ä¸ºãæ¯å¦ï¼ String.prototype.startsWith()
ï¼String.prototype.endsWith()
å String.prototype.includes()
è¿äºæ¹æ³ä¼æ£æ¥å
¶ç¬¬ä¸ä¸ªåæ°æ¯å¦æ¯æ£å表达å¼ï¼æ¯æ£å表达å¼å°±æåºä¸ä¸ªTypeError
ãç°å¨ï¼å¦æ match
symbol 设置为 false
ï¼æè
ä¸ä¸ª åå¼ï¼ï¼å°±è¡¨ç¤ºè¯¥å¯¹è±¡ä¸æç®ç¨ä½æ£å表达å¼å¯¹è±¡ã
ä¸é¢ä»£ç 伿åºä¸ä¸ª TypeError
ï¼
"/bar/".startsWith(/bar/);
// Throws TypeErrorï¼å 为 /bar/ æ¯ä¸ä¸ªæ£å表达å¼
// ä¸ Symbol.match 没æä¿®æ¹ã
使¯ï¼å¦æä½ å° Symbol.match
置为 false
ï¼ä½¿ç¨ match
屿§çè¡¨è¾¾å¼æ£æ¥ä¼è®¤ä¸ºè¯¥å¯¹è±¡ä¸æ¯æ£å表达å¼å¯¹è±¡ãstartsWith
å endsWith
æ¹æ³å°ä¸ä¼æåº TypeError
ã
var re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
è§è æµè§å¨å
¼å®¹æ§ åè§
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