完全理解正則表達式

正則表達式

1、聲明有兩種方式:

  一、內置對象建立, 二、字面量建立正則表達式

 

2、正則表達式的組成

  由一些普通字符和元字符組成,普通字符就是字母和數字,元字符是具備特殊意義的字符url

 

3、正則表達式五大內部類:(只要有一個字符知足條件,就是true)

(1)預約義類:(通配,數字字符,單詞字符,空白字符)spa

 

 

(2)簡單內部類.net

/sjdfi/ 必須是完整的包含指定字符,能夠多,但不能少對象

/[suej]/  只要知足中括號中的一個就能夠blog

 

(3)負向類字符串

/[^abc]/ 取反,^符號在[]中,用來檢測的字符串數量不夠或者剛恰好知足其中一個字符,返回false。超出規定數量或者沒有一個與指定字符相符,就是知足條件,返回true.get

 

(4)範圍類it

規定一個範圍進行檢測io

[a-z] [A-Z]  只要檢測的值一個知足給定範圍,返回true

 

(5)組合類

[a-zA-Z0-9$%*] 多個斷定條件組合在一塊兒

 

4、正則邊界

/^abc/  ^ 以給定字符開頭 (注意:在[]中括號中是取反,不在中括號中是以什麼開頭)

/zfg$/  $ 以給定字符結尾,

 

^和$在一塊兒使用,表示精確匹配,必須是這個[^abc$];

/^\w/  表示以字母,數字或者下劃線開頭的字符

/^\w$/ 當有了先後的邊界,只能匹配單個字符,要想匹配多個,就要用到量詞。

 

5、正則量詞(量詞使用在先後都有邊界的狀況下,而且一個量詞跟一個標準)

(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結尾的均可以

 

6、正則實例

(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/

相關文章
相關標籤/搜索