æ£å¦æä»¬æçå°çï¼åææ \ ç¨äºè¡¨ç¤ºå符类ï¼ä¾å¦ \dãæä»¥å®æ¯æ£å表达å¼ä¸çä¸ä¸ªç¹æ®å符ï¼å°±åå¨å¸¸è§å符串ä¸ä¸æ ·ï¼ã
è¿åå¨å
¶å®ç¹æ®å符ï¼è¿äºåç¬¦å¨æ£å表达å¼ä¸æç¹æ®çå«ä¹ï¼ä¾å¦ [ ] { } ( ) \ ^ $ . | ? * +ãå®ä»¬ç¨äºæ§è¡æ´å¼ºå¤§çæç´¢ã
ç°å¨å¹¶ä¸éè¦å°è¯è®°ä½å®ä»¬ ââ 彿们åå«å¦ä¹ å®ä»¬çæ¶åï¼ä½ èªç¶èç¶å°±ä¼è®°ä½äºã
转ä¹
å妿们æ³è¦æ¾å°ä¸ä¸ªç¹å· .ã
è¦å°ç¹æ®å符ç¨ä½å¸¸è§å符ï¼è¯·å¨å
¶åé¢å ä¸åææ ï¼\.ã
è¿å°±æ¯æè°çâ转ä¹å符âã
ä¾å¦ï¼
alert( "Chapter 5.1".match(/\d\.\d/) ); // 5.1ï¼å¹é
äºï¼ï¼
alert( "Chapter 511".match(/\d\.\d/) ); // nullï¼å¯»æ¾ä¸ä¸ªçæ£çç¹ \.ï¼
æ¬å·ä¹æ¯ç¹æ®åç¬¦ï¼æä»¥å¦ææä»¬æ³è¦æ¥æ¾å®ä»¬ï¼æä»¬åºè¯¥ä½¿ç¨ \(ãä¸é¢çä¾å伿¥æ¾ä¸ä¸ªå符串 "g()"ï¼
alert( "function g()".match(/g\(\)/) ); // "g()"
妿æä»¬æ³æ¥æ¾åææ \ï¼æä»¬å°±åºè¯¥ä½¿ç¨ä¸¤ä¸ªåææ ï¼
alert( "1\\2".match(/\\/) ); // '\'
ä¸ä¸ªææ
ææ ç¬¦å· '/' 并䏿¯ä¸ä¸ªç¹æ®å符ï¼ä½æ¯å®è¢«ç¨äºå¨ Javascript ä¸å¼å¯åå
³éæ£åå¹é
ï¼/...pattern.../ï¼æä»¥æä»¬ä¹åºè¯¥è½¬ä¹å®ã
ä¸é¢æ¯æç´¢ææ '/' ç表达å¼ï¼
alert( "/".match(/\//) ); // '/'
ä»å¦ä¸ä¸ªæ¹é¢çï¼å¦ææä»¬æ²¡ä½¿ç¨ /.../ï¼èæ¯ä½¿ç¨å¦ä¸ç§ new RegExp çæ¹å¼å建æ£å表达å¼ï¼åä¸éè¦è½¬ä¹ææ ï¼
alert( "/".match(new RegExp("/")) ); // æ¾å°äº /
new RegExp
妿æä»¬ä½¿ç¨ new RegExp å建æ£å表达å¼ï¼é£ä¹æä»¬ä¸å¿
è½¬ä¹ /ï¼ä½éè¦è¿è¡ä¸äºå
¶ä»è½¬ä¹ã
ä¾å¦ï¼èèä¸é¢è¿ä¸ªç¤ºä¾ï¼
let reg = new RegExp("\d\.\d");
alert( "Chapter 5.1".match(reg) ); // null
å¨ä¹åç示ä¾ä¸æä»¬ä½¿ç¨ /\d\.\d/ è¿è¡ç±»ä¼¼çæç´¢æ²¡é®é¢ï¼ä½ new RegExp("\d\.\d") ä¸èµ·ä½ç¨ï¼ä¸ºä»ä¹ï¼
å ä¸ºåææ 被åç¬¦ä¸²âæ¶èâäºãæä»¬å¯è½è¿è®°å¾ï¼å¸¸è§å符串æèªå·±çç¹æ®å符ï¼ä¾å¦ \nï¼åææ ç¨äºè½¬ä¹ã
ä¸é¢æ¯ â\d.\dâ çæç¥å½¢å¼ï¼
alert("\d\.\d"); // d.d
å¨å符串ä¸çåææ è¡¨ç¤ºè½¬ä¹æè
类似 \n è¿ç§åªè½å¨å符串ä¸ä½¿ç¨çç¹æ®å符ãè¿ä¸ªå¼ç¨ä¼âæ¶èâå¹¶ä¸è§£éè¿äºåç¬¦ï¼æ¯å¦è¯´ï¼
\nââ åæä¸ä¸ªæ¢è¡å符ï¼\u1234ââ åæè¯¥ç¼ç æå¯¹åºç Unicode å符ï¼- â¦â¦è彿²¡æç¹æ®å«ä¹æ¶ï¼å¦
\dæè\zï¼ç¢°å°è¿ç§æ 嵿¶åä¼èªå¨ç§»é¤åææ ã
æä»¥è°ç¨ new RegExp ä¼è·å¾ä¸ä¸ªæ²¡æåææ çå符串ãè¿å°±æ¯æç´¢ä¸èµ·ä½ç¨çåå ï¼
妿è¦ä¿®å¤è¿ä¸ªé®é¢ï¼æä»¬éè¦åææ ï¼å 为å¼ç¨ä¼æ \\ å为 \ï¼
let regStr = "\\d\\.\\d";
alert(regStr); // \d\.\dï¼ç°å¨å¯¹äºï¼
let regexp = new RegExp(regStr);
alert( "Chapter 5.1".match(regexp) ); // 5.1
æ»ç»
- è¦å¨å颿ä¹ä¸æç´¢ç¹æ®å符
[ \ ^ $ . | ? * + ( )ï¼æä»¬éè¦å¨å®ä»¬åé¢å ä¸ä¸ä¸ªåææ\ï¼â转ä¹å®ä»¬âï¼ã - 妿å¨
/.../å ï¼ä½ä¸å¨new RegExpå ï¼ï¼æä»¬è¿éè¦è½¬ä¹/ã - å½å°åç¬¦ä¸²ä¼ éç»ç»
new RegExpæ¶ï¼æä»¬éè¦ååææ\\ï¼å 为å符串å¼å·ä¼æ¶èä¸ä¸ªåææ ã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼