RegExp.prototype.source
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
source 㯠RegExp ã®ã¢ã¯ã»ãµã¼ããããã£ã§ãæ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã®ã½ã¼ã¹ããã¹ãã®å
¥ã£ãæååãè¿ãã¾ããããã«ã¯ã両端㮠2 ã¤ã®ã¹ã©ãã·ã¥ããã©ã°ã¯å«ã¾ãã¾ããã
試ãã¦ã¿ã¾ããã
const regex = /fooBar/gi;
console.log(regex.source);
// äºæ³ãããçµæ: "fooBar"
console.log(new RegExp().source);
// äºæ³ãããçµæ: "(?:)"
console.log(new RegExp("\n").source === "\\n");
// äºæ³ãããçµæ: true ï¼ES5 以éï¼
// Due to escaping
解説
æ¦å¿µçã«ã¯ãsource ããããã£ã¯æ£è¦è¡¨ç¾ãªãã©ã«ã® 2 ã¤ã®ã¹ã©ãã·ã¥ã®éã®ããã¹ãã§ãããã®è¨èªã§ã¯ãè¿ãããæååãé©åã«ã¨ã¹ã±ã¼ãããã¦ããå¿
è¦ããããsource ã®ä¸¡ç«¯ã«ã¹ã©ãã·ã¥ãé£çµããã¨ãè§£æå¯è½ãªæ£è¦è¡¨ç¾ãªãã©ã«ãå½¢æããã¾ããä¾ãã°ãnew RegExp("/") ã®å ´åãsource 㯠\\/ ã§ãããã㯠/ ãçæããçµæã®ãªãã©ã«ã¯ /// ã§ããåæ§ã«ãæ¹è¡æåã¯ãæ¹è¡æåã§ããæåããæ£è¦è¡¨ç¾ãªãã©ã«ãåå²ãã¦ãã¾ãããããã¹ã¦ã¨ã¹ã±ã¼ãããã¾ããçµæãè§£æå¯è½ã§ããéããä»ã«ãæåã¯å¿
è¦ããã¾ããã空æååã®æ£è¦è¡¨ç¾ã§ã¯ (?:) ã¨ããæååãè¿ãã¾ãã
ä¾
>source ã®ä½¿ç¨
const regex = /fooBar/gi;
console.log(regex.source); // "fooBar", /.../ 㨠"gi" ã¯å«ã¾ãã¾ããã
ç©ºã®æ£è¦è¡¨ç¾ã¨ã¨ã¹ã±ã¼ã
new RegExp().source; // "(?:)"
new RegExp("\n").source === "\\n"; // trueãES5 以é
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-get-regexp.prototype.source > |