å®è·µçãªã¿ã¹ã¯ãèãã¦ã¿ã¾ããã â "+7(903)-123-45-67" ã¨ããé»è©±çªå·ãããããã®æååã®ãã¹ã¦ã®æ°åãè¦ã¤ããå¿
è¦ãããã¾ã: 79035419441ã
ãã®ããã«ã¯ãæ°å¤ä»¥å¤ãè¦ã¤ãã¦é¤å»ãã¾ããæåã¯ã©ã¹(Character class)ã¯ãã®ã¨ãå½¹ç«ã¡ã¾ãã
æåã¯ã©ã¹ ã¯éåããä»»æã®è¡¨ç¾ã«ãããããç¹å¥ãªè¡¨è¨æ³ã§ãã
æåã« âæ°åâ ã¯ã©ã¹ããè¦ã¦ããã¾ãããã\d ã¨æ¸ãã¾ãããããæ£è¦è¡¨ç¾ã®ãã¿ã¼ã³ã«å
¥ãæ¤ç´¢ããã¨ãä»»æã®æ°åã«ããããã¾ãã
ä¾ãã°ãæ£è¦è¡¨ç¾ /\d/ ã¯1ã¤ã®æ°åãæ¢ãã¾ã:
let str = "+7(903)-123-45-67";
let reg = /\d/;
alert( str.match(reg) ); // 7
ä¸ã®ä¾ã§ã¯ g ãã©ã°ããªãã®ã§ãæ£è¦è¡¨ç¾ã¯æåã®ãããã ããæ¢ãã¾ãã
ãã¹ã¦ã®æ°åãæ¢ãããã« g ãã©ã°ã追å ãã¾ããã:
let str = "+7(903)-123-45-67";
let reg = /\d/g;
alert( str.match(reg) ); // ãããããé
å: 7,9,0,3,1,2,3,4,5,6,7
// çµæããæ°åã ãã®é»è©±çªå·ãä½ãã¾ããã:
alert( str.match(regexp).join('') ); // 79035419441
å ç¨ã¯æ°åã®ããã®æåã¯ã©ã¹ã§ãããåæ§ã«ä»ã®æåã¯ã©ã¹ãããã¾ãã
æã使ãããã®ã¯ä»¥ä¸ã®ãã®ã§ã:
\d(âdâ 㯠âdigitâ ãã)- æ°å:
0ãã9ã®æåã§ãã \s(âsâ 㯠âspaceâ ãã)- ã¹ãã¼ã¹è¨å·: ã¹ãã¼ã¹ãã¿ã
\tãæ¹è¡\nã¨ããã¤ãã®ãã¾ã使ãããªãæåãå«ã¾ãã¾ã:\v,\fã\rã§ãã \w(âwâ 㯠âwordâ ãã)- âè¨èâ ã®æå: è±èªã¢ã«ãã¡ãããã®æåã¾ãã¯æ°åã¾ãã¯ã¢ã³ãã¼ã¹ã³ã¢
_ã éè±èªã®æåï¼ããªã«æåããã³ãã£ã¼èªãªã©ï¼ã¯\wã«å±ãã¾ããã
ä¾ãã°ã\d\s\w 㯠"1 Z" ã®ããã«ãæ°åã®ãã¨ã«ç©ºç½æåãåèªæåãç¶ãæååãæå³ãã¾ãã
æ£è¦è¡¨ç¾ã¯é常ã®è¨å·ã¨æåã¯ã©ã¹ä¸¡æ¹ãå«ãå ´åãããã¾ãã
ä¾ã¨ãã¦ãCSS\d 㯠CSS ã®ãã¨ã«æ°åãç¶ãæååã«ããããã¾ãã:
let str = "CSS4 is cool";
let reg = /CSS\d/
alert( str.match(reg) ); // CSS4
ã¾ããå¤ãã®æåã¯ã©ã¹ã使ããã¨ãã§ãã¾ã:
alert( "I love HTML5!".match(/\s\w\w\w\w\d/) ); // 'HTML5'
ããã(åæåã¯ã©ã¹ã¯çµææåã«å¯¾å¿ãã¾ã):
éã®ã¯ã©ã¹
ãã¹ã¦ã®æåã¯ã©ã¹ã«ã¯ âéã®ã¯ã©ã¹â ãããã¾ããããã¯åãæåã§ãã大æåã§è¡¨ããã¾ãã
âéâ ã¯ãä»ã®ãã¹ã¦ã®æåã«ããããããã¨ãæå³ãã¾ããä¾ãã°:
\D- éæ°å:
\d以å¤ã®ä»»æã®åã§ããä¾ãã°æåã§ãã \S- éã¹ãã¼ã¹:
\s以å¤ã®ãã¹ã¦ã®æåã§ããä¾ãã°æåã§ãã \W- éåèªæå:
\w以å¤ã®æåã
ãã£ãã¿ã¼ã®å
é ã§ã¯ãé»è©±çªå· +7(903)-123-45-67 ãããã¹ã¦ã®æ°åãåå¾ããæ¹æ³ãè¦ã¾ãããæååãã âç´ç²ãªâ é»è©±çªå·ãåå¾ãã¦ã¿ã¾ãããã:
let str = "+7(903)-123-45-67";
alert( str.match(/\d/g).join('') ); // 79031234567
代ããã®æ¹æ³ã¯ãæååããéæ°åãè¦ã¤ãåé¤ãããã¨ã§ã:
let str = "+7(903)-123-45-67";
alert( str.replace(/\D/g, "") ); // 79031234567
ãããã¯ä»»æã®æåã§ã
ããã . 㯠æ¹è¡ãé¤ãä»»æã®æå ã«ãããããç¹å¥ãªæåã¯ã©ã¹ã§ãã
ä¾:
alert( "Z".match(/./) ); // Z
ã¾ãæ£è¦è¡¨ç¾ã®ä¸ã«ããå ´å:
let reg = /CS.4/;
alert( "CSS4".match(reg) ); // CSS4
alert( "CS-4".match(reg) ); // CS-4
alert( "CS 4".match(reg) ); // CS 4 (空ç½ãæåã§ã)
ããã㯠âä»»æã®æåâ ãæå³ãã¾ããã âæåã®æ¬ å¦â ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ãããããã«ãããããæåãå¿ è¦ã§ã::
alert( "CS4".match(/CS.4/) ); // null, ãããã«å¯¾ããæåããªãã®ã§ããããã¾ãã
Dot as literally any character with âsâ flag
ããã©ã«ãã§ã¯ããããã¯æ¹è¡æå \n ã«ã¯ããããã¾ããã
ä¾ãã°ãæ£è¦è¡¨ç¾ A.B 㯠A ãæ¬¡ã«æ¹è¡æå \n ãé¤ãä»»æã®æåãB ã«ããããã¾ã:
alert( "A\nB".match(/A.B/) ); // null (ããããã¾ãã)
æ¹è¡ãå«ãã¦ãããããæåéã âä»»æã®æåâ ã¨ãããã±ã¼ã¹ã¯å¤ãããã¾ãã
ããã ãã©ã°s ããããã¨ã§ããæ£è¦è¡¨ç¾ãã«ãã®ãã©ã°ãããã¨ãããã . ã¯æåéãä»»æã®æåã«ããããã¾ãã:
alert( "A\nB".match(/A.B/s) ); // A\nB (match!)
ææ°ã®ãµãã¼ãç¶æ³ã«ã¤ãã¦ã¯ https://caniuse.com/#search=dotall ã確èªãã¦ãã ãããå·çæç¹ã§ã¯ Firefox, IE, Edge ã¯å«ã¾ãã¦ãã¾ããã
幸ããªãã¨ã«ãã©ãã§ãæ©è½ããä»£æ¿ææ®µãããã¾ãã âä»»æã®æåâ ã«ãããããããå ´åã[\s\S] ã¨ããæ£è¦è¡¨ç¾ã使ç¨ãã¾ãã
alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (match!)
ãã¿ã¼ã³ [\s\S] ã¯æåéãã§ã: âã¹ãã¼ã¹æå or ã¹ãã¼ã¹ã§ã¯ãªãæåâãã¤ã¾ããâãªãã§ãâ ã§ãã[\d\D] ã®ãããªå¥ã®ã¯ã©ã¹ã®ãã¢ã使ããã¨ãã§ãã¾ãã
ãã®ããªãã¯ã¯ã©ãã§ãæ©è½ãã¾ããã¾ãããã¿ã¼ã³ã«éå¸¸ã® âæ¹è¡ãªãâ ã®ããããå¿
è¦ãªå ´åã«ã s ãã©ã°ãè¨å®ããããªãå ´åã«ã使ç¨ã§ãã¾ãã
é常ãã¹ãã¼ã¹ã«ã¯ã»ã©ãã©æ³¨æãæãã¾ãããç§éã«ã¨ã£ã¦ãæåå 1-5 㨠1 - 5 ã¯ã»ã¨ãã©åãã§ãã
ã§ãããã¹ãã¼ã¹ãèæ ®ãã¦ããªãæ£è¦è¡¨ç¾ã®å ´åããã¾ãåä½ããªããã¨ãããã¾ãã
ãã¤ãã³ã§åºåãããæ°åãè¦ã¤ãã¾ããã:
alert( "1 - 5".match(/\d-\d/) ); // null, no match!
æ£è¦è¡¨ç¾ \d - \d ã«ã¹ãã¼ã¹ã追å ãã¦ä¿®æ£ãã¾ãããã:
alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, ããã§åä½ãã¾ã
// or we can use \s class:
alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, ãããOKã§ã
ã¹ãã¼ã¹ã¯æåã§ããä»ã®æåã¨åæ§ã«éè¦ã§ãã
æ£è¦è¡¨ç¾ã«ã¹ãã¼ã¹ã追å ãããåé¤ãã¦åãåä½ãæå¾ ãããã¨ã¯ã§ãã¾ããã
ã¤ã¾ããæ£è¦è¡¨ç¾ã§ã¯ãã¹ã¦ã®æåãéè¦ã§ãããã¹ãã¼ã¹ãããã§ãã
ãµããª
æåã¯ã©ã¹ã説æãã¾ãã:
\dâ æ°å\Dâ éæ°å\sâ ã¹ãã¼ã¹è¨å·ãã¿ããæ¹è¡\Sâ\s以å¤\wâ è±èªæåãæ°åãã¢ã³ãã¼ã¹ã³ã¢'_'\Wâ\w以å¤.â æ¹è¡ä»¥å¤ã®ä»»æã®æåã's'ãã©ã°ãããã°ä»»ææåã§ãã
ã§ãããããã§å ¨é¨ã§ã¯ããã¾ããã
JavaScript ãæååã«ä½¿ç¨ãã Unicode ã¨ã³ã³ã¼ãã£ã³ã°ã¯ãæåã®å¤ãã®ããããã£ãæä¾ãã¾ãã
ãããã®ããããã£ã§æ¤ç´¢ãããã¨ãã§ãã¾ããããã«ã¯ã次ã®è¨äºã§èª¬æãããã©ã° patternï¼u ãå¿
è¦ã§ãã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã