è¾å ¥è¾¹çæè¨ï¼^ã$
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
è¾å
¥è¾¹çæè¨æ£æ¥å符串çå½åä½ç½®æ¯å¦ä¸ºè¾å
¥è¾¹çãè¾å
¥è¾¹ç为å符串çèµ·å§æç»æ¢ï¼æè
ï¼å¦æè®¾ç½®äº m æ å¿ï¼å为ä¸è¡çèµ·å§æç»æ¢ã
è¯æ³
^
$
æè¿°
^ æè¨å½åä½ç½®æ¯è¾å
¥çå¼å¤´ï¼$ æè¨å½åä½ç½®æ¯è¾å
¥çç»å°¾ãå 为两è
齿¯æè¨ï¼å®ä»¬ä¸ä¼æ¶èä»»ä½å符ã
æ´åç¡®å°è¯´ï¼^ æè¨å·¦ä¾§çå符è¶
åºäºå符串çèå´ï¼$ æè¨å³ä¾§çå符è¶
åºäºå符串çèå´ãå¦æè®¾ç½®äº m æ å¿ï¼å ^ ä¹ä¼å¹é
左侧å符æ¯è¡ç»æ¢ç¬¦çæ
åµï¼$ åçä¹ä¼å¹é
å³ä¾§å符æ¯è¡ç»æç¬¦çæ
åµã
é¤éè®¾ç½®äº m æ å¿ï¼å¦å ^ å $ æè¨ä»
å¨ä½äºæ¨¡å¼è¾¹çæ¶æææä¹ï¼å 为å®ä»¬å·¦ä¾§æå³ä¾§çä»»ä½å
¶ä»å符é½ä¼å¯¼è´æè¨å¤±è´¥ã
y æ å¿ä¸ä¼æ¹åè¿äºæè¨çå«ä¹ââåè§éå®ç²æ§æ å¿ã
示ä¾
>ç§»é¤æ«å°¾çææ
以ä¸ç¤ºä¾ç¨äºä» URL å符串ä¸ç§»é¤å°¾éææ ï¼
function removeTrailingSlash(url) {
return url.replace(/\/$/, "");
}
removeTrailingSlash("https://example.com/"); // "https://example.com"
removeTrailingSlash("https://example.com/docs/"); // "https://example.com/docs"
å¹é æä»¶æ©å±å
以ä¸ç¤ºä¾éè¿å¹é æä»¶æ©å±åæ¥æ£æ¥æä»¶ç±»åï¼æä»¶æ©å±åæ»æ¯ä½äºåç¬¦ä¸²çæ«å°¾ï¼
function isImage(filename) {
return /\.(?:png|jpe?g|webp|avif|gif)$/i.test(filename);
}
isImage("image.png"); // true
isImage("image.jpg"); // true
isImage("image.pdf"); // false
å¹é æ´ä¸ªè¾å ¥
ææ¶ï¼éè¦ç¡®ä¿æ£å表达å¼å¹é æ´ä¸ªè¾å ¥å 容ï¼èä¸ä» ä» æ¯è¾å ¥çåå符串ãä¾å¦ï¼å¦æéè¦å¤æä¸ä¸ªå符串æ¯å¦ä¸ºææçæ è¯ç¬¦ï¼å¯ä»¥å¨æ¨¡å¼ç两端添å è¾å ¥è¾¹çæè¨ï¼
function isValidIdentifier(str) {
return /^[$_\p{ID_Start}][$_\p{ID_Continue}]*$/u.test(str);
}
isValidIdentifier("foo"); // true
isValidIdentifier("$1"); // true
isValidIdentifier("1foo"); // false
isValidIdentifier(" foo "); // false
è¯¥å½æ°å¨è¿è¡ä»£ç çæï¼å³ä½¿ç¨ä»£ç çæä»£ç ï¼æ¶é常æç¨ï¼å ä¸ºä½ å¯ä½¿ç¨ä¸å ¶ä»åç¬¦ä¸²å±æ§ä¸åçåæ³æ è¯ç¬¦ï¼å¦ä½¿ç¨ç¹å·è¡¨ç¤ºæ³ä»£æ¿æ¹æ¬å·è¡¨ç¤ºæ³ï¼
const variables = ["foo", "foo:bar", " foo "];
function toAssignment(key) {
if (isValidIdentifier(key)) {
return `globalThis.${key} = undefined;`;
}
// JSON.stringify() 转ä¹å¼å·åå
¶ä»ç¹æ®å符
return `globalThis[${JSON.stringify(key)}] = undefined;`;
}
const statements = variables.map(toAssignment).join("\n");
console.log(statements);
// globalThis.foo = undefined;
// globalThis["foo:bar"] = undefined;
// globalThis[" foo "] = undefined;
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # prod-Assertion> |