æ£è¦è¡¨ç¾ã¨ã¯ãæååå
ã§æåã®çµã¿åãããç
§åããããã«ç¨ãããããã¿ã¼ã³ã§ãã JavaScript ã§ã¯ãæ£è¦è¡¨ç¾ã¯ãªãã¸ã§ã¯ãã§ãããã¾ãããããã®ãã¿ã¼ã³ã¯ RegExp
ã® exec()
ããã³ test()
ã¡ã½ããããString
ã® match()
ãmatchAll()
ãreplace()
ãreplaceAll()
ãsearch()
ãsplit()
ã¡ã½ããã§ä½¿ç¨ã§ãã¾ãã æ¬ç« ã§ã¯ã JavaScript ã®æ£è¦è¡¨ç¾ã«ã¤ãã¦èª¬æãã¾ããããããã®æ§æè¦ç´ ã®æ¦ç¥ãæä¾ãã¦ãã¾ããããããã®æå³ã¥ãã®è©³ç´°ã«ã¤ãã¦ã¯ãæ£è¦è¡¨ç¾ã®ãªãã¡ã¬ã³ã¹ãåç
§ãã¦ãã ããã
æ£è¦è¡¨ç¾ã¯ 2 éãã®æ¹æ³ã§ä½æãããã¨ãã§ãã¾ãã
次ã®ããã«ãã¹ã©ãã·ã¥ã§å²ã¾ãããã¿ã¼ã³ãããªãæ£è¦è¡¨ç¾ãªãã©ã«ã使ç¨ãã¾ãã
æ£è¦è¡¨ç¾ãªãã©ã«ã¯ã¹ã¯ãªããã®èªã¿è¾¼ã¿æã«ãã®æ£è¦è¡¨ç¾ãã³ã³ãã¤ã«ãã¾ãã æ£è¦è¡¨ç¾ãå¤åããªãå ´åããã®æ¹æ³ã使ãã¨ããããã©ã¼ãã³ã¹ãå¾ããã¾ãã
ã¾ããæ¬¡ã®ããã« RegExp
ãªãã¸ã§ã¯ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ãå¼ã³åºãæ¹æ³ãããã¾ãã
const re = new RegExp("ab+c");
ã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã使ç¨ããã¨ãå®è¡æã«ãã®æ£è¦è¡¨ç¾ãã³ã³ãã¤ã«ãã¾ãã æ£è¦è¡¨ç¾ãã¿ã¼ã³ãå¤ãããã¨ãåãã£ã¦ããå ´åãããã¿ã¼ã³ãåãããªãå ´åãã¦ã¼ã¶ã¼å ¥åãªã©å¥ãªã¨ãããããã¿ã¼ã³ãåå¾ããå ´åã¯ãã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã使ç¨ãã¦ãã ããã
æ£è¦è¡¨ç¾ãã¿ã¼ã³ã¯ã /abc/
ã®ãããªåç´ãªæåãã¾ã㯠/ab*c/
ã /Chapter (\d+)\.\d*/
ã®ãããªåç´ãªæåã¨ç¹æ®æåã¨ã®çµã¿åãããããªãã¾ãã æå¾ã®ä¾ã«ã¯è¨æ¶è£
ç½®ã¨ãã¦ç¨ãããã丸æ¬å¼§ãããã¾ãã ãã¿ã¼ã³ã®ãã®é¨åã«ä¸è´ããç®æã¯ãå¾ã§ä½¿ç¨ã§ããããã«è¨æ¶ããã¾ãã詳ããã¯ã°ã«ã¼ãã®ä½¿ç¨ãåç
§ãã¦ãã ããã
åç´ãªãã¿ã¼ã³ã¨ã¯ãç´æ¥ä¸è´ãããã®ãæ¢ãããæåã§æ§æããããã®ã§ããä¾ãã° /abc/
ã¨ãããã¿ã¼ã³ã¯ãæååã®ä¸ã§ "abc"
ã¨ãã並ã³ãæ£ç¢ºã«ç¾ããï¼ãã¹ã¦ã®æåãé£ç¶ãã¦ããããã®é ã§ä¸¦ãã§ããï¼å ´åã®ã¿ãæåã®çµã¿åããã«ä¸è´ãã¾ãã "Hi, do you know your abc's?"
ã "The latest airplane designs evolved from slabcraft."
çã®æååã«ã¯ä¸è´ãã¾ãã ã©ã¡ãã®å ´åã§ãã "abc"
ã¨ããé¨åæååã«ä¸è´ãã¾ãã "Grab crab"
ã¨ããæååã®å ´åã "ab c"
ã¨ããé¨åæååãå«ãã§ãã¾ãããæ£ç¢ºãª "abc"
ã¨ããé¨åæååãå«ãã§ããããã§ã¯ãªãã®ã§ãä¸è´ãã¾ããã
ç´æ¥ã®ä¸è´ãããé«åº¦ãªä½ãã«ä¸è´ãããã®ãæ¤ç´¢ããå ´åãä¾ãã° 1 å以ä¸ã® b ãæ¢ãããããã¯ã¤ãã¹ãã¼ã¹ãè¦ã¤ãããããå ´åããã¿ã¼ã³ã«ç¹æ®æåãå«ãããã¨ãã§ãã¾ãã ä¾ãã°ã 1 åã® "a"
ã« 0 å以ä¸ã® "b"
ãç¶ããããã« "c"
ãç¶ããã®ã«ä¸è´ãããå ´åã /ab*c/
ã¨ãããã¿ã¼ã³ã使ç¨ããã§ãããã "b"
ã®å¾ã® *
ã¯ãç´åã®ã¢ã¤ãã ã® 0 å以ä¸ã®åºç¾ããæå³ãã¾ãã "cbbabbbbcdebc"
ã¨ããæååã§ã¯ããã®ãã¿ã¼ã³ã¯ "abbbbc"
ã¨ããé¨åæååã«ä¸è´ãã¾ãã
以ä¸ã®ãã¼ã¸ã§ãæ£è¦è¡¨ç¾ã§ä½¿ç¨ã§ããç¹æ®æåã®å®å ¨ãªãªã¹ãã¨ãã®æå³ã詳ãã説æãã¾ãã
ã¢ãµã¼ã·ã§ã³ã«ã¯ãè¡ãåèªã®å§ã¾ãã¨çµããã示ãå¢çããä½ããã®æ¹æ³ã§ä¸è´ããå¯è½æ§ã示ããã¿ã¼ã³ï¼å èªã¿ãå¾è¿½ããæ¡ä»¶å¼ãªã©ï¼ãå«ã¾ãã¾ãã
ç°ãªãã¿ã¤ãã®æåãå¤å¥ãã¾ããä¾ãã°ãã¢ã«ãã¡ãããã¨æ°åãå¤å¥ããã
ã°ã«ã¼ãã¯è¤æ°ã®ãã¿ã¼ã³ãå ¨ä½ã¨ãã¦ã°ã«ã¼ãåãããã£ããã£ã°ã«ã¼ãã¯æ£è¦è¡¨ç¾ãã¿ã¼ã³ã使ç¨ãã¦æååã¨ä¸è´ãããéã«ã追å ã®ãµãä¸è´æ å ±ãæä¾ãã¾ãã徿¹åç §ã¯ãåãæ£è¦è¡¨ç¾ã§ä»¥åã«ææãããã°ã«ã¼ããåç §ãã¾ãã
ä¸è´ãããæåãå¼ã®æ°ã示ãã¾ãã
æ£è¦è¡¨ç¾ã§å©ç¨å¯è½ãªãã¹ã¦ã®ç¹æ®æåãä¸ã¤ã®è¡¨ã§è¦ããå ´åã¯ã以ä¸ãåç §ãã¦ãã ããã
æ£è¦è¡¨ç¾ã«ãããç¹æ®æå æå / æ§é 対å¿ããè¨äº[xyz]
, [^xyz]
, .
, \d
, \D
, \w
, \W
, \s
, \S
, \t
, \r
, \n
, \v
, \f
, [\b]
, \0
, \cX
, \xhh
, \uhhhh
, \u{hhhh}
, x|y
^
, $
, \b
, \B
, x(?=y)
, x(?!y)
, (?<=y)x
, (?<!y)x
(x)
, (?<Name>x)
, (?:x)
, \n
, \k<Name>
x*
, x+
, x?
, x{n}
, x{n,}
, x{n,m}
ã¡ã¢: ãã£ã¨å¤§ããªæ©è¦è¡¨ãããã¾ã ï¼åå¥ã®è¨äºã®ä¸é¨ãéç´ããã ãã§ãï¼ã
ã¨ã¹ã±ã¼ãç¹æ®æåãæåã¨ãã¦ä½¿ãå¿
è¦ãããå ´å (ä¾ãã°ãå®éã« "*"
ãæ¤ç´¢ããå ´å)ããã®åã«ããã¯ã¹ã©ãã·ã¥ãä»ãã¦ã¨ã¹ã±ã¼ãããå¿
è¦ãããã¾ãã ä¾ãã°ã "a"
ã« "*"
ãç¶ããããã« "b"
ãç¶ããã®ãæ¤ç´¢ããã«ã¯ã /a\*b/
ã¨ä½¿ç¨ãã¾ããããã¯ã¹ã©ãã·ã¥ã¯ "*"
ããã¨ã¹ã±ã¼ããããç¹æ®æåã§ã¯ãªãæåã¨ãã¦æ±ãããã«ãã¾ãã
åæ§ã«ãããæ£è¦è¡¨ç¾ãªãã©ã«ãæ¸ãã¦ãã¦ã¹ã©ãã·ã¥ ("/") ã¨ç
§åããå¿
è¦ãããå ´åã¯ãã¹ã©ãã·ã¥ãã¨ã¹ã±ã¼ãããå¿
è¦ãããã¾ãï¼ããããªãã¨ã¹ã©ãã·ã¥ã§ãã¿ã¼ã³ãçµäºãã¾ãï¼ã ä¾ãã°ã "/example/" ã¨ããæååã¨ããã«ç¶ã 1 æå以ä¸ã®ã¢ã«ãã¡ããããæ¢ãã«ã¯ã /\/example\/[a-z]+/i
ã¨ãã¾ããããããã®ã¹ã©ãã·ã¥ã®åã«ããã¯ã¹ã©ãã·ã¥ãç½®ããã¨ã«ãã£ã¦ãã¹ã©ãã·ã¥ãæåã¨ãã¦æ±ãã¾ãã
ããã¯ã¹ã©ãã·ã¥æåã¨ç
§åããã«ã¯ãããã¯ã¹ã©ãã·ã¥ãã¨ã¹ã±ã¼ãããå¿
è¦ãããã¾ãã ä¾ãã°ã "C:\" ã¨ããæååã§ "C" ãä»»æã®è±åã«ãªãå ´åã¯ã /[A-Z]:\\/
ã使ç¨ãã¾ããæåã®ããã¯ã¹ã©ãã·ã¥ããã®æ¬¡ã®æåãã¨ã¹ã±ã¼ãããã®ã§ããã®è¡¨ç¾ã¯åä¸ã®ããã¯ã¹ã©ãã·ã¥ãæ¤ç´¢ãã¾ãã
RegExp
ã³ã³ã¹ãã©ã¯ã¿ã¼ã«æååãªãã©ã«ã渡ãã¦ä½¿ç¨ããå ´åãããã¯ã¹ã©ãã·ã¥ã¯æååãªãã©ã«ã§ã®ã¨ã¹ã±ã¼ãæåã§ããããã¨ãæãåºãã¦ãã ãããã¤ã¾ããããã¯ã¹ã©ãã·ã¥ãæ£è¦è¡¨ç¾ã§ç¨ããã«ã¯æååãªãã©ã«ã¬ãã«ã§ã¨ã¹ã±ã¼ãããå¿
è¦ãããã¾ãã /a\*b/
㨠new RegExp("a\\*b")
ã¯åã表ç¾ãçæãããã®ã§ããã "a" ã®æ¬¡ã« "*"ããã®æ¬¡ã« "b" ããããã®ãæ¢ãã¾ãã
RegExp.escape()
颿°ã¯ãæ£è¦è¡¨ç¾ã®æ§æã«ãããç¹æ®æåããã¹ã¦ã¨ã¹ã±ã¼ãããæ°ããæååãè¿ãã¾ããããã使ç¨ãã¦ã new RegExp(RegExp.escape("a*b"))
ã¨ãããã¨ã§ãæåå "a*b"
ã«ã®ã¿ä¸è´ããæ£è¦è¡¨ç¾ã使ãããã¨ãã§ãã¾ãã
æ£è¦è¡¨ç¾ãã¿ã¼ã³ã®ä¸é¨ãæ¬å¼§ã§å²ããã¨ã§ãä¸è´ããé¨åæååãè¨æ¶ãã¦ãããã¨ãã§ãã¾ãã ãã£ããè¨æ¶ãããã°ãå¾ãããã®é¨åæååãå¼ã³åºããã¨ãã§ãã¾ããããã«é¢ãã¦ã¯ã°ã«ã¼ãã¨å¾æ¹åç §ã§èª¬æãã¦ãã¾ãã
JavaScriptã§ã®æ£è¦è¡¨ç¾ã®ä½¿ãæ¹æ£è¦è¡¨ç¾ã¯ã RegExp
ã® test()
㨠exec()
ã¡ã½ããã String
ã® match()
ãmatchAll()
ãreplace()
ãreplaceAll()
, ãsearch()
ãsplit()
ã¡ã½ããã¨ã¨ãã«ä½¿ç¨ãã¾ãã
exec()
æååå
ã§ä¸è´ãããã®ã®æ¤ç´¢ãå®è¡ãã¾ããçµææ
å ±ã®é
åãè¿ãã¾ããä¸è´ãããã®ããªããã° null
ãè¿ãã¾ãã test()
æååå
ã§ä¸è´ãããã®ããããæ¤æ»ãã¾ãã true
ã¾ã㯠false
ãè¿ãã¾ãã match()
ãã£ããã£ã°ã«ã¼ããå«ãããã¹ã¦ã®ä¸è´ãããã®ãå«ãé
åãè¿ãã¾ããä¸è´ãããã®ããªãå ´å㯠null
ãè¿ãã¾ãã matchAll()
ãã£ããã£ã°ã«ã¼ããå«ãããã¹ã¦ã®ä¸è´ãããã®ãå«ãã¤ãã¬ã¼ã¿ã¼ãè¿ãã¾ãã search()
æååå
ã§ä¸è´ãããã®ããããæ¤æ»ãã¾ããä¸è´ããä½ç½®ãè¿ãã¾ããæ¤ç´¢ã«å¤±æããå ´å㯠-1
ãè¿ãã¾ãã replace()
æååå
ã§ä¸è´ãããã®ãä¸ã¤æ¤ç´¢ããä¸è´ããé¨åæååãç½®æããé¨åæååã§ç½®æãã¾ãã replaceAll()
æååå
ã§ä¸è´ãããã®ãã¹ã¦ãæ¤ç´¢ããä¸è´ããé¨åæååãç½®æããé¨åæååã§ç½®æãã¾ãã split()
æ£è¦è¡¨ç¾ã¾ãã¯åºå®æååãç¨ãã¦æååãåå²ããé¨åæååã®é
åã«å
¥ãã¾ãã
ãããã¿ã¼ã³ãæååã«åå¨ããããç¥ãããã¨ãã¯ãtest()
ã¾ã㯠search()
ã¡ã½ããã使ç¨ãã¦ãã ãããè©³ç´°ãªæ
å ±ãç¥ãããã¨ãã¯ï¼å®è¡æéãé·ããªãã¾ããï¼ exec()
ã¾ã㯠match()
ã¡ã½ããã使ç¨ãã¦ãã ããã exec()
ã match()
ã使ç¨ãã¦ä¸è´ããå ´åããããã®ã¡ã½ããã¯é
åãè¿ããé¢é£ããæ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã¨å®ç¾©æ¸ã¿ãªãã¸ã§ã¯ãã§ãã RegExp
ãªãã¸ã§ã¯ãã®ããããã£ãæ´æ°ãã¾ãã ä¸è´ããªãã£ãå ´åã exec
ã¡ã½ãã㯠null
ï¼false
ã«å¤æãããå¤ï¼ãè¿ãã¾ãã
次ã®ä¾ã§ã¯ãexec()
ã¡ã½ããã使ç¨ãã¦æååãæ¤ç´¢ãã¾ãã
const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
æ£è¦è¡¨ç¾ã®ããããã£ã«ã¢ã¯ã»ã¹ããå¿
è¦ããªãå ´åã myArray
ã使ããããä¸ã¤ã®æ¹æ³ã¯ãã®ã¹ã¯ãªããã®éãã§ãã
const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// 'cdbbdbsbz'.match(/d(b+)d/g) ã¨åæ§ããã ãã
// 'cdbbdbsbz'.match(/d(b+)d/g) ã¯é
å [ "dbbd" ] ãåºåããã®ã«å¯¾ãã
// /d(b+)d/g.exec('cdbbdbsbz') ã¯é
å [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ] ãåºåããã
(ç°ãªãåä½ã«ã¤ãã¦ã®è©³ããæ
å ±ã¯exec()
ã«ãããã°ãã¼ãã«æ¤ç´¢ãã©ã°ã®ä½¿ç¨ãåç
§ãã¦ãã ããã)
ããæååããæ£è¦è¡¨ç¾ãçµã¿ç«ã¦ããå ´åã¯ã次ã®ã¹ã¯ãªããã®ãããªæ¹æ³ãããã¾ãã
const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
ãããã®ã¹ã¯ãªããã§ã¯ä¸è´ãããã®ãããã¨ãé åãè¿ãã¨ã¨ãã«æ¬¡è¡¨ã§ç¤ºãããããããã£ãæ´æ°ãã¾ãã
æ£è¦è¡¨ç¾ã®å®è¡çµæ ãªãã¸ã§ã¯ã ããããã£ã¾ãã¯ã¤ã³ããã¯ã¹ 説æ ãã®ä¾ã®å ´åmyArray
ä¸è´ããæååã¨ããã¹ã¦ã®è¨æ¶ãããé¨åæååã§ãã ['dbbd', 'bb', index: 1, input: 'cdbbdbsbz']
index
å
¥åæååã§ä¸è´ããä½ç½®ã示ãã0 ããå§ã¾ãä½ç½®ã§ãã 1
input
å
ã®æååã§ãã 'cdbbdbsbz'
[0]
æå¾ã«ä¸è´ããæååã§ãã 'dbbd'
myRe
lastIndex
æ¬¡ã®æ¤ç´¢ãå§ã¾ãä½ç½®ã§ãã ï¼ãã®ããããã£ã¯ãg ãªãã·ã§ã³ãç¨ããæ£è¦è¡¨ç¾ã§ã®ã¿ã»ããããã¾ãã ããã«ã¤ãã¦ã¯ãã©ã°ãç¨ããé«åº¦ãªæ¤ç´¢ã§èª¬æãã¾ããï¼ 5
source
ãã¿ã¼ã³ã®ããã¹ãã§ããæ£è¦è¡¨ç¾ã®å®è¡æã§ã¯ãªã使æã«æ´æ°ããã¾ãã 'd(b+)d'
ãã®ä¾ã® 2 ã¤ç®ã®å½¢å¼ã§ç¤ºããããã«ããªãã¸ã§ã¯ãåæååã§ä½æããæ£è¦è¡¨ç¾ã¯ã夿°ã«ä»£å ¥ããã«ä½¿ç¨ãããã¨ãã§ãã¾ãã ããããããããã¨åºç¾ãããã³ã«æ°ããæ£è¦è¡¨ç¾ã«ãªãã¾ãã ãã®ããã夿°ã«ä»£å ¥ããã«ãã®å½¢å¼ã使ç¨ããã¨ããã®å¾ããã®æ£è¦è¡¨ç¾ã®ããããã£ã«ã¢ã¯ã»ã¹ã§ãã¾ããã ä¾ãã°ã次ã®ãããªã¹ã¯ãªãããããã¨ãã¾ãã
const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
ãããããã®ã¹ã¯ãªããã®å ´åã¯æ¬¡ã®ããã«ãªãã¾ãã
const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
ãã® 2 ã¤ã®æä¸ã® /d(b+)d/g
ã¯ç°ãªãæ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã§ããããã lastIndex
ããããã£ã®å¤ãç°ãªãã¾ãã ãªãã¸ã§ã¯ãåæååã§ä½æããæ£è¦è¡¨ç¾ã®ããããã£ã«ã¢ã¯ã»ã¹ããå¿
è¦ãããå ´åã¯ãã¾ããã®æ£è¦è¡¨ç¾ã夿°ã«ä»£å
¥ããå¿
è¦ãããã¾ãã
æ£è¦è¡¨ç¾ã«ã¯ãã°ãã¼ãã«æ¤ç´¢ã大æåå°æåãåºå¥ããªãæ¤ç´¢ãªã©ã®æ©è½ãå®ç¾ãã 6 種é¡ã®ãªãã·ã§ã³ãã©ã°ãããã¾ãã ãããã®ãã©ã°ã¯ãåå¥ã«ä½¿ç¨ãããã¨ãä¸ç·ã«ä½¿ç¨ãããã¨ãã§ããé åºã¯åãã¾ãããæ£è¦è¡¨ç¾ã®ä¸é¨ã«å«ã¾ãã¾ãã
ãã©ã° 説æ 対å¿ããããããã£d
ä¸è´ããé¨åæååã®ä½ç½®ãçæãã¾ãã hasIndices
g
ã°ãã¼ãã«æ¤ç´¢ãè¡ãã¾ãã global
i
大æåã»å°æåãåºå¥ããªãæ¤ç´¢ã§ãã ignoreCase
m
^
ããã³ $
ãæ¹è¡æåã®é£ã§ä¸è´ããããã«ãªãã¾ãã multiline
s
.
ãæ¹è¡æåã«ä¸è´ããããã«ãã¾ãã dotAll
u
"unicode" ã§ãããã¿ã¼ã³ãä¸é£ã® Unicode ã³ã¼ããã¤ã³ãã¨ãã¦æ±ãã¾ãã unicode
v
Unicodeã®æ©è½ãããã«è¿½å ããã u
ã¢ã¼ãã®ã¢ããã°ã¬ã¼ãã unicodeSets
y
対象æååã®ç¾å¨ã®ä½ç½®ããå§ã¾ãé¨åã«ä¸è´ãããã®ãæ¢ããå
é åºå®ã (sticky) æ¤ç´¢ãè¡ãã¾ãã sticky
ãã©ã°ãæ£è¦è¡¨ç¾ã«å«ããã«ã¯ã次ã®ããã«ãã¦ãã ããã
const re = /pattern/flags;
ã¾ãã¯
const re = new RegExp("pattern", "flags");
ãã©ã°ã¯æ£è¦è¡¨ç¾ãä½ãéã«ãªãã¦ã¯ãªããªããã®ã§ãããã¨ã«æ³¨æãã¦ãã ãããå¾ããå ãããåãé¤ããããããã¨ã¯ã§ãã¾ããã
ä¾ãã° re = /\w+\s/g
ã¯ã1 å以ä¸ã®æåã¨ããã«ç¶ãã¹ãã¼ã¹ãæ¢ãæ£è¦è¡¨ç¾ã使ãã¾ããã¾ããæ£è¦è¡¨ç¾ã¯æååå
¨ä½ãéãã¦ãã®çµã¿åãããæ¢ãã¾ãã
const re = /\w+\s/g;
const str = "fee fi fo fum";
const myArray = str.match(re);
console.log(myArray);
// ["fee ", "fi ", "fo "]
ãã®ä¾ã§ã¯ãã®è¡ã
ããã®è¡ã
const re = new RegExp("\\w+\\s", "g");
ã«ç½®ãæãããã¨ãã§ãã¾ããå¾ãããçµæã¯åãã§ãã
m
ãã©ã°ã¯ãè¤æ°è¡ã®å
¥åæååãè¤æ°è¡ã¨ãã¦æ±ããã¨ãæå®ããããã«ä½¿ç¨ãã¾ãã m
ãã©ã°ã使ç¨ããã¨ã ^
㨠$
ã¯ãæååå
¨ä½ã§ã¯ãªããå
¥åæååå
ã®ä»»æã®è¡ã®å
é ã¾ãã¯æ«å°¾ã«ä¸è´ãã¾ãã
i
, m
, s
ãã©ã°ã¯ãæ£è¦è¡¨ç¾ã®ç¹å®ã®é¨åã«å¯¾ãã¦ãä¿®é£¾åæ§æã使ç¨ãã¦æå¹ã¾ãã¯ç¡å¹ã«ãããã¨ãã§ãã¾ãã
RegExp.prototype.exec()
ã¡ã½ããã« g
ãã©ã°ãä»ããã¨ãããããä¸è´ããå¤ã¨ãã®ä½ç½®ãç¹°ãè¿ãè¿ãã¾ãã
const str = "fee fi fo fum";
const re = /\w+\s/g;
console.log(re.exec(str)); // ["fee ", index: 0, input: "fee fi fo fum"]
console.log(re.exec(str)); // ["fi ", index: 4, input: "fee fi fo fum"]
console.log(re.exec(str)); // ["fo ", index: 7, input: "fee fi fo fum"]
console.log(re.exec(str)); // null
ããã«å¯¾ãã¦ã String.prototype.match()
ã¡ã½ããã¯ããã¹ã¦ã®ä¸è´å¤ãä¸åº¦ã«è¿ãã¾ããããã®ä½ç½®ã¯å«ã¾ãã¾ããã
console.log(str.match(re)); // ["fee ", "fi ", "fo "]
Unicode æ£è¦è¡¨ç¾ã®ä½¿ç¨
u
ãã©ã°ã¯ "unicode" æ£è¦è¡¨ç¾ã使ããããã«ä½¿ããã¾ããã¤ã¾ãã Unicode ããã¹ãã«ä¸è´ããããã«å¯¾å¿ãã¦ããæ£è¦è¡¨ç¾ã§ããUnicode ã¢ã¼ãã§æå¹ã«ãªãéè¦ãªæ©è½ã¯ã Unicode ããããã£ã¨ã¹ã±ã¼ãã§ããä¾ãã°ã次ã®ãããªæ£è¦è¡¨ç¾ã使ç¨ãã¦ãä»»æã® Unicode ã®ãèªãã¨ç
§åãããã¨ãã§ãã¾ãã
Unicode ã®æ£è¦è¡¨ç¾ã¯ãåæ§ã«ç°ãªãåä½ããã¾ãã RegExp.prototype.unicode
ã«ã¯ãããã«é¢ãããã詳ãã説æãããã¾ãã
次ã®ä¾ã§ã¯ãã¦ã¼ã¶ã¼ãé»è©±çªå·ãå ¥åãããã¨ãæ³å®ãã¦ãã¾ãã ã¦ã¼ã¶ã¼ã [ãã§ãã¯] ãã¿ã³ãæ¼ãã¨ãã¹ã¯ãªããã¯ãã®çªå·ã®æå¹æ§ããã§ãã¯ãã¾ãã çªå·ãæå¹ãªå ´å (æ£è¦è¡¨ç¾ã§æå®ãããæååã«ä¸è´ããå ´å)ãã¹ã¯ãªããã¯ã¦ã¼ã¶ã¼ã¸ã®æè¬ã¨çªå·ã®ç¢ºèªã示ãã¡ãã»ã¼ã¸ã表示ãã¾ãã çªå·ãç¡å¹ãªå ´åãã¹ã¯ãªããã¯ã¦ã¼ã¶ã¼ã«é»è©±çªå·ãç¡å¹ã§ãããã¨ãéç¥ãã¾ãã
ãã®æ£è¦è¡¨ç¾ã¯æ¬¡ã®ãã®ãæ¢ãã¾ãã
^
\d{3}
ã¾ã㯠|
å·¦æ¬å¼§ \(
ã®æ¬¡ã« 3 æ¡ã®æ°å \d{3}
ã®æ¬¡ã«éãæ¬å¼§ \)
ã§ãããã¯ãã£ããã£ã°ã«ã¼ãã§ãªããã® (?:)
ã«å
¥ã£ã¦ãã¾ãã()
ã«å
¥ã£ã¦ãããã®\d{3}
\1
\d{4}
$
<p>
é»è©±çªå·ï¼å¸å¤å±çªå«ãï¼ãå
¥åã㦠"ãã§ãã¯" ãã¯ãªãã¯ãã¦ãã ããã
<br />
é©åãªå½¢å¼ã¯ ###-###-#### ãªã©ã§ãã
</p>
<form id="form">
<input id="phone" />
<button type="submit">ãã§ãã¯</button>
</form>
<p id="output"></p>
JavaScript
const form = document.querySelector("#form");
const input = document.querySelector("#phone");
const output = document.querySelector("#output");
const re = /^(?:\d{3}|\(\d{3}\))([-/.])\d{3}\1\d{4}$/;
function testInfo(phoneInput) {
const ok = re.exec(phoneInput.value);
output.textContent = ok
? `ãããã¨ããããªãã®é»è©±çªå·ã¯ ${ok[0]}`
: `${phoneInput.value} ã¯å¸å¤å±çªä»ãé»è©±çªå·ã§ã¯ããã¾ããï¼`;
}
form.addEventListener("submit", (event) => {
event.preventDefault();
testInfo(input);
});
çµæ ãã¼ã«
æ£è¦è¡¨ç¾ãå¦ã³ãæ§ç¯ãããã¹ãããããã®ãªã³ã©ã¤ã³ãã¼ã«ã§ãã
ãªã³ã©ã¤ã³æ£è¦è¡¨ç¾ãã«ãã¼/ãããã¬ã¼
ãªã³ã©ã¤ã³ã®ã¤ã³ã¿ã©ã¯ãã£ããªãã¥ã¼ããªã¢ã«ãæ©è¦è¡¨ããã¬ã¤ã°ã©ã¦ã³ãã
ãªã³ã©ã¤ã³ã®ãã¸ã¥ã¢ã«ãªæ£è¦è¡¨ç¾ãã¹ã¿ã¼ã§ãã
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