javascript總結48:正則表達式(RegExp)

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

正則表達式(英語:Regular Expression,在代碼中常簡寫爲regex、regexp或RE)使用單個字符串來描述、匹配一系列符合某個句法規則的字符串搜索模式。搜索模式可用於文本搜索和文本替換。正則表達式

什麼是正則表達式?

正則表達式是由一個字符序列造成的搜索模式。函數

當你在文本中搜索數據時,你能夠用搜索模式來描述你要查詢的內容。測試

正則表達式能夠是一個簡單的字符,或一個更復雜的模式。spa

正則表達式可用於全部文本搜索和文本替換的操做。code

3 正則表達式的特色是:

靈活性、邏輯性和功能性很是的強;regexp

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

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

 正則表達式聲明

-1 經過構造函數定義字符串

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

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

  var 變量名= /表達式/;

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

  console.log(/\d/.test(567));(直接使用)

-3 正則表達式的組成是:(總結)

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

5 正則表達式方法

-1 test() 方法 

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

 使用語法:  

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

6 正則內部類

-1 預約義類  

 [^\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]     非單詞字符  

 

-2  簡單類(正則://中什麼特殊符號都不寫,和[]的加入)

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

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

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

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

一句話,只要完整包含andy 就能夠了(有他就行)

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

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

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

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

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

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

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

 /[3aH8]/.test("ss"); // false

 

-3  負向類(不能是其中的總體或者一部分)

中括號內,前面加個元字符^進行取反,不是括號裏面的字符(一部分也不行)。

(能夠不夠,可是不能多)(不夠和正好,返回false;多了或者沒有返回true

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

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

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

-4 範圍類

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

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

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

-5 組合類

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

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

6 正則邊界

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

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

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

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

// 邊界能夠精確說明要什麼
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 這四個字母

7 量詞

(多個字母,重複最後一個)

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

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

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

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

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

{n} n x=n)  

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

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

*     {0,}

+     {1,}

?     {0,1}

 

x|y    一個 |   x  或者 y(沒有&,用的是,代替的)   

()提升權限,有限計算

8 replace 函數

replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。

語法格式:(返回值是新字符串)

須要匹配的對象.replace(正則式/字符串,替換的目標字符)

正則表達式的匹配模式支持的2個標誌

  g:表示全局模式(global),即模式將被應用於全部字符串而非發現一個而中止

  i:表示不區分大小寫(ease-insensitive)模式,在肯定匹配想時忽略模式與字符串的大小寫

相關文章
相關標籤/搜索