正則表達式

正則表達式

正則表達式(英語:Regular Expression正則表達式

本質:用來記錄文本規則的代碼      函數

應用很是普遍,如:表單驗證、高級搜索、生化科學      測試

(有必定難度,不要求很是熟練,但至少會表單驗證) spa

正則表達式的特色是:regexp

1. 靈活性、邏輯性和功能性很是的強;對象

2. 能夠迅速地用極簡單的方式達到字符串的複雜控制。字符串

3. 對於剛接觸的人來講,比較晦澀難懂。string

好比:io

匹配國內電話號碼:\d{3}-\d{8}|\d{4}-\d{7}console

驗證手機號:

/^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$/   

很難記住。

 體會正則表達式

在體會以前,咱們先認識幾個地方。

正則表達式的組成就是:

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

匹配騰訊QQ號:[1-9][0-9]{4,}

評註:騰訊QQ號從10000開始

好比  \d

預約義類: 表示數字   [0-9]

     

test() 方法          

正則對象方法,檢測測試字符串是否符合該規則,返回truefalse,參數(測試字符串)

使用語法:  

   表達式.test("要驗證的內容");  

console.log(/\d/.test(567));

 驗證  567 符不符合 \d 的規範

 正則表達式聲明

建立正則表達式的兩種方式

1.經過構造函數定義

var 變量名= new RegExp(/表達式/);  

2.經過直接量定義  (較爲經常使用)

var 變量名= /表達式/;

  console.log(regexp1.test(345));

  console.log(/\d/.test(567));

 預約義類                                                       

 .    [^\n\r] 除了換行和回車以外的任意字符

 \d [0-9] 數字字符

 \D [^0-9]    非數字字符

 

 \s [ \t\n\x0B\f\r]  空白字符

 \S [^ \t\n\x0B\f\r]  非空白字符

 

 \w [a-zA-Z_0-9]  單詞字符

 \W [^a-zA-Z_0-9]     非單詞字符  

簡單類

/string/.test(「string」);    必須是完整的  只多不能少

好比 /andy/.test(「andy」)  // true

/andy/.test(「andyliu」)  // true

/andy/.test(「an」)  // false

也就是說,只要後面的包含了andy 就闊以了

/[string]/.test(「string」);   只要包含裏面的任何字母就能夠

  console.log(/[andy]/.test("andy"));  // true

    console.log(/[andy]/.test("an"));// true

    console.log(/[andy]/.test("ady"));// true

    console.log(/[andy]/.test("anll"));// true

    console.log(/[andy]/.test("assd"));// true

    console.log(/[andy]/.test("ss"));// false

 負向類

括號內,前面加個元字符^進行取反,表示匹配不能爲括號裏面的字符。

 console.log(/[^abc]/.test('a'));

 console.log(/[^abc]/.test('gg'));

注意:  這個符號 ^  必定是寫到方括號裏面

 範圍類

有時匹配的東西過多,並且類型又相同,所有輸入太麻煩,咱們能夠在中間加了個橫線

console.log(/[a-z]/.test('1111'));

console.log(/[A-Z]/.test('aa'));

 

 組合類

用中括號匹配不一樣類型的單個字符。

console.log(/[a-m1-5]/.test("b"))//true

正則邊界(重點)

^ 會匹配行或者字符串的起始位置

注:^[]中才表示非!這裏表示開始

$ 會匹配行或字符串的結尾位置

^$在一塊兒 表示必須是這個(精確匹配)

// 邊界能夠精確說明要什麼
console.log(/lily/.test("lilyname")); // true
console.log(/^lily$/.test("lily"));  // true
console.log(/^lily$/.test("ly"));   // false

 

console.log(/^andy$/.test("andy"));  // true

 這個的最終意思就是 說, 必須是 andy 這四個字母

 

量詞(重點)

 *   (貪婪)   重複零次或更多   (>=0)

 +   (懶惰)   重複一次或更屢次  (>=1)

 ?    (佔有)   重複零次或一次   (0||1)  要麼有 要麼沒有

{}  重複多少次的意思   能夠有多少個  

您的銀行卡密碼只能是 6位      {6}

{n} nx=n)  

{n,} 重複n次或更多  (x>=n)

{n,m} 重複出現的次數比n多但比m(n<=x<=m)

 

 

*    {0,}

+     {1,}

?     {0,1}

x|y    一個 |   x  或者 y   

匹配騰訊QQ號:[1-9][0-9]{4,}

評註:騰訊QQ號從10000開始

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息