js正則表達
正則表達式:
2種聲明方式,var reg = new RegExp(“abc”)
var reg = /abc/
不同之處在於第一種方式可以傳參數(var x = “abc”)
轉義:
所有在正則裏邊擁有特殊意義的字符都需要轉義
轉義方式:在特殊字符前加\(在字符串中也是轉義的意思,所以在傳參時要寫\\d)
eg:
"ac:\"ads\"";
轉義字符加特定的字母有特殊的意思:(正則中)
\d 數字;\D 非數字; \s/S 空格/非空格;
\w/W 字符(字母、數字、下劃線)/非字符;
\b 獨立部分(只要是獨立的單詞就行,除了\w)(hot-dot) /\bdog\b/;
\B 非獨立部分
特殊字符:
/ \
標識:寫在//之後或者傳第二個參數
i 不區分大小寫
g 全局匹配 match方法
m 換行匹配
方法:
正則.test(字符串) 匹配成功返回true
字符串.match(正則) 匹配成功返回(類)數組,否則null
字符串.search(正則) 返回出現的下標
字符串.replace(正則,字符(函數)參數) 正則匹配的替換成第二個參數(可以是函數) 函數的參數第一個是匹配的,第二個是子項
字符串.split(正則)
量詞:
{2,5} >=2 <=5 {2} {2,}
在全局匹配的時候只返回一個,加上量詞代表限制
/\d{2,5}/ 58a5s589 返回一個包含58 589的數組
幾個特殊量詞有特殊符號表示:
+ {1,}
? {0,1}
* {0,}
字符集:
代表一個範圍
[a-h] [\u4e00-\u9fa5] (漢字匹配)
代表或者
[ab] a或者b
/[ab0-9]/ a或者b或者0-9 0-9是一個整體
除了...之外
[^ab] 除了a和b之外 ^必須放在開頭才有意義
子項:
()
match方法如果沒有加g,並且你有用()規定子項,則會顯示/(a)(b)/
/阿飛(很帥|好屌)/ 可以將|的全局變為一個區間
或者:
|
全局 /阿飛很帥|阿飛很吊/
^ 起始部分 /^[1-9]/ 起始必須是1-9
$ 結束部分 /[1-9]$/ 結束部分必須是1-9
. 匹配所有字符 除了換行(\n \r) 在字符集中是有特殊意義的!
在字符集中具有特殊意義的有: . \ ] - ^(必須開頭) /
js正則表達