正則表達式
一、聲明有兩種方式:
1、內置對象創建, 2、字面量創建
二、正則表達式的組成
由一些普通字符和元字符組成,普通字符就是字母和數字,元字符是具有特殊意義的字符
三、正則表達式五大內部類:(只要有一個字符滿足條件,就是true)
(1)預定義類:(通配,數字字符,單詞字符,空白字符)
(2)簡單內部類
/sjdfi/ 必須是完整的包含指定字符,可以多,但不能少
/[suej]/ 只要滿足中括號中的一個就可以
(3)負向類
/[^abc]/ 取反,^符號在[]中,用來檢測的字符串數量不夠或者剛剛好滿足其中一個字符,返回false。超出規定數量或者沒有一個與指定字符相符,就是滿足條件,返回true.
(4)范圍類
規定一個范圍進行檢測
[a-z] [A-Z] 只要檢測的值一個滿足給定范圍,返回true
(5)組合類
[a-zA-Z0-9$%*] 多個判定條件組合在一起
四、正則邊界
/^abc/ ^ 以給定字符開頭 (注意:在[]中括號中是取反,不在中括號中是以什么開頭)
/zfg$/ $ 以給定字符結尾,
^和$在一起使用,表示精確匹配,必須是這個[^abc$];
/^\w/ 表示以字母,數字或者下划線開頭的字符
/^\w$/ 當有了前后的邊界,只能匹配單個字符,要想匹配多個,就要用到量詞。
五、正則量詞(量詞使用在前后都有邊界的情況下,並且一個量詞跟一個標准)
(1)* >=0 模板給定的字符可以出現一次或者多次,但不能出現其他字符
Var reg = /^a*$/; a可以出現0次或者多次,不能出現其他任何字符
/^abc*$/ 這種情況,可以出現多次c,但ab只能出現一次,且出現順序是 abccc,不能調換。要想每個字符都可以出現多次,那么每個字符后面都要跟上量詞,並且順序也不能換
/^a*b+c?$/ aaabbbbc; true; abcabc; false;
(2)+ >=1 給定字符至少出現一次
/^a+$/
(3)? 0||1 給定字符出現0次或者1次
/^z?$/; z只能出現0次或者1次
/^\w+$/; 可以出現多次同樣的字母,數字,下划線
/^[abc]+$/; 可以多次出現[abc]中的任意一個字符,但不能超出abc這三個字符的范圍
(4){} 大括號中的數字限定模板字符出現的個數
/^[abc]{2}$/; 可以出現模板中的任意兩個字符
/^abc{2}$/; 規定必須完整的出現abc,並且c出現量詞(一個量詞跟一個標准,沒有任何包裹的字母都可以看成一個判定標准,/abc/這種形式屬於簡單內部類)
(5){2,} 出現大於等於2次
/^\w{3,}$/; 出現字母,數字,下划線的次數大於等於三次
/^ab{4,}c{2,}d$/ 必須以這個順序依次出現,b的次數要大於等於4次,c的次數要大於等於2,d最后一次出現結尾。
(6){2,5} 出現2次到5次(包括)
/^[a-zA-Z]{2,5}$/ a-z,A-Z這個范圍類的字符出現2-5次(大於等於2,小於等於5)
(7)| 只能用在簡單內部類且不帶任何包裹的判定添加上(可以加括號)
/^abc|def$/; 滿足abc開頭或者def結尾的都可以
六、正則實例
(1)匹配手機號 var reg = /^1[3458]\d{9}$/.
(2)匹配固定電話 var reg = /^(0\d{2}[\-]\d{8})|(0\d{3}[\-]\d{7})$/;
滿足0開頭,中間兩位是0-9之間的數字,第三位是-(需要轉義字符轉義,否則即使[范圍連接符]),最后8位是0-9的數字
(3)匹配qq號 var reg = /^[1-9][0-9]{4,10}$/
(4)匹配郵箱(注意,特殊字符需要轉義)
var reg = /^[\w\-\.]+\@[\w]+\.[\w]{2,4}$/
參考資料: w3c 善知堂教育http://www.itszt.com/