20170605-正則表達式相關

字面量定義正則表達式

  • ECMAScript經過RegExp類型來支持正則表達式正則表達式

  • var expression = / pattern / flags:模式(pattern)部分能夠是任何簡單或複雜的正則表達式,標誌(flag)部分用來標明正則表達式的匹配模式express

  • 正則表達式的匹配模式支持下列3個標誌:函數

    • g:表示全局模式,即模式會被應用於全部字符串,而非在發現第一個匹配項時當即中止code

    • i:表示不區分大小寫模式對象

    • m:表示多行模式,即在到達一行文本末尾時還會繼續查找下一行中是否存在與模式匹配的項索引

  • 正則表達式:ip

    • \d: 等價於[0-9],表示數字字符字符串

    • \w: 等價於[a-zA-Z_0-9],表示字母,數字,下劃線input

    • \s: 等價於[\t\n\x0B\f\r],表示空白符io

    • \[a-zA-Z0-9]: 表示大小寫字母和數字

    • \b: 表示單詞邊界,單詞邊界就是單詞和符號之間的邊界,這裏的單詞能夠是中文字符,英文字符,數字;符號能夠是中文符號,英文符號,空格,製表符,換行

    • .: 等價於[^\r\n],表示除了回車和換行符以外的全部字符

    • *: 表示出現零次或屢次

    • +: 表示出現一次或屢次

    • ?: 表示出現零次或一次

    • x{3}: 表示x出現3次

    • ^: 表示以XXX開頭

    • $: 表示以XXX結尾

使用構造函數建立正則表達式

  • var pattern = new RegExp("[bc]at", "i");

  • RegExp構造函數接受兩個參數:一個是要匹配的 字符串模式(注意不是字面量),兩一個是可選的標誌字符串

經常使用方法:

  • pattern.exec(str):

    • 對於exec()方法而言,即便在模式中設置了全局標誌(g),它每次也只會返回一個匹配項。在不設置全局標誌的狀況下,在同一個字符創上屢次調用exec()將始終返回第一個匹配項的信息。而在設置全局標誌的狀況下,每次調用exec()則會在字符串中繼續查找新匹配項。

    • exec()方法返回一個對象,擁有兩個屬性:index和input,index表示匹配項在字符串中的位置,input表示應用正則表達式的字符串

  • pattern.test(str):

    • 在模式與該參數匹配的狀況下返回true,不然返回false

String類型也能夠利用正則表達式來實現相應的功能:

  • match方法:

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.match(pattern);  // 不管執行多少次,都只會返回 ["cat"]

var pattern = /.at/g;
text.match(pattern);  // 返回 ["cat", "bat", "sat", "fat"]
  • replace方法:

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.replace(pattern, "skt");  // 不管執行多少次,都只會返回 "skt, bat, sat, fat"

var pattern = /.at/g;
text.replace(pattern, "skt");  // 不管執行多少次,都只會返回 "skt, skt, skt, skt"
  • search方法:返回字符串第一個匹配項的索引

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.search(pattern);  // 不管執行多少次,都只會返回 0

var pattern = /.at/g;
text.search(pattern);  // 不管執行多少次,都只會返回 0
相關文章
相關標籤/搜索