徹底理解正則表達式


正則表達式

一、聲明有兩種方式:

  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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM