修飾符 (g,i,m)
g : 全文進行匹配 (不加則匹配至第乙個即停止)
i : 忽略大小寫(預設大小寫敏感)
m : 多行搜尋
「he is a boy,is he?」.replace('/\bis\b/gi','0')
=> "he 0 a boy,0 he?"
元字元(.,,(),$,^,|,,)
字元類,滿足其中乙個即可
[abc] 字元類,(表或,有其中乙個即可(a,b,c))
[^abc] 字元類取反,none of (a,b,c) 不包含組合裡任意乙個
[a-z] 從a至z的任意字元
[0-9] 從0至9的任意數字
[a-za-z] 從a至z或a至z的任意字元
. 除了回車符和換行符之外的所有符號
\d 數字字元 ([0-9])
\d 非數字字元([^0-9])
\s 空白符
\s 非空白符
\w 單詞字元 (字母數字下劃線 [a-za-z_0-9])
\w 非單詞字元
() 分組
2020-05-06 替換為05-06-2020
var reg = /^(\d)[/-](\d)[/-](\d)$/g
"2020-05-06".replace(reg,'$2-$3-$1')
分組:
- 重複單詞
"brobrobroadc".replace(/(bro)/gi,'x') => "xadc" (brobrobro)
- 分組匹配
"bro1fr2g1h3gg".replace(/([a-z]\d)/gi,'x') => "bro1fxgg" (r2g1h3)
- 或"brobrobroadc".replace(/bro|a/g,'x') => "bro***dc" (bro bro a)
- 忽略分組,不想捕獲時再分組前加(?:....)
(?:sister).(ok) => $1 = ok
邊界(^,$,\b,\b)
^ 以***開始(寫前)
$ 以***結束 (寫後)
\b 單詞邊界
\b 非單詞邊界
量詞(?,+,*,{})
「?」 0次或1次 (最多出現1次)
「+」 1次或多次 (最少出現1次)
「*」 0次或n次 (任意次)
n次 n次到m次
至少出現n次
最多出現m次
貪婪模式 (匹配最多次)
"12345678".replace(/\d/g,'x') => "x78" (123456)
"123456789".replace(/\d/g,'x') => "xx" (123456,789)
非貪婪模式(匹配最少次,量詞後加?)"12345678912".replace(/\d?/g,'x') => "***12" (123 456 789)
前瞻
1.正向前瞻 (exp(?=assert))
2.負向前瞻 (exp(?!assert))
var reg = /\w(?=\d)/g (字元後面是數字)
"a2*3".replace(reg,'x') => "x2*3"
"a2*34v8".replace(reg,'x') => "x2*x4x8"
"a2*34vv".replace(/\w(?!\d)/g,'x') => "ax*3***"
正規表示式手記
一 1 規則描述 1 9 匹配1 9 的數字 d 匹配數字,包括 0 9 緊跟在 d 之後,表明可以匹配 零個及多個 數字 匹配小數點 緊跟在 之後,表明可以匹配 零個或乙個 小數點 0 匹配乙個數字0 其中的 1 9 d d 用以匹配諸如 1 23 34.0 6.7 之類的非負的整數和浮點數 其中...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...