JavaScript參考型別RegExp

來源:互聯網
上載者:User

標籤:

本文和大家分享的主要是javascript 的參考型別RegExp相關內容,一起來看看吧,希望對大家 學習javascript有所協助。 ·  字面量  var  reg=/\d+/g; console.log( reg.test("789456"));//true ·  建構函式  var reg2=new RegExp("\\d+","g");console.log(reg2.test("1234444456"));//trueconsole.log(reg2.test("asdsa"));//false  修飾符 ·  i:  表示不區分大小寫(case-insensitive )模式,即在確定匹配項時忽略模式與字串的大小寫; ·  m:  表示多行(multiline )模式,即在到達一行文本末尾時還會繼續尋找下一行中是否存在與模 式匹配的項。 ·  g:  表示全域(global )模式,即模式將被應用於所有字串,而非在發現第一個匹配項時立即 停止;  元字元 ·  單個字元數字 · .  匹配除分行符號以外的任一字元 · [a-zA-Z0-p]  與  [^a-zA-Z0-p]  匹配方括弧中的任一字元,前面代 ^ 是匹配不在方括弧中的任一字元; · \d  與  \D  匹配數字和匹配非數字; · \w  與  \W  匹配字元和匹配非字母 ·  空白字元 · \O  匹配 null 字元 · \b  匹配空白字元 · \f  匹配換頁符 · \n  匹配分行符號 · \r  匹配斷行符號符 · \s  和  \S  匹配空白字元,空格、定位字元或分行符號。大寫的 S 是匹配非Null 字元 · \t  匹配製表符 ·  定位器 · ^  行首匹配 · $  行尾匹配 · \A  只匹配字串的開始處 · \b \B  匹配單詞便捷,詞在 [] 內無效,匹配非單詞邊界 · G  匹配當前搜尋的開始位置 · \Z \z  匹配字串結束處或行尾,只匹配字串結束處 ·  限定符 · x?  匹配 0 個或一個 x · x*  匹配 0 個或者任意多個 x · x+  匹配一個或者多個 · x{m,n}  匹配 m-n 個 x ; ·  分組 · (?:x)  匹配 x 但不記錄匹配結果(匹配不捕獲) · x(?=y)  當 x 後面接 y 時匹配 x · x(?!y)  當 x 後不是 y 時匹配 x ·  引用 · \1…\9 $1…$9  返回就割在模式比對期間找到的,最近儲存的部分 ·  或模式 · x|y|z  匹配 x 或者 y 或者 z  屬性  執行個體屬性 RegExp  的每個執行個體都具有下列屬性,通過這些屬性可以取得有關模式的各種資訊。 · global :布爾值,檢測是走設定 g 標記 · ignoreCase :布爾值,檢測是否設定 i 標記 · nultiline : 布爾值,檢測是否設定了 m 標記 · lastIndex : 整數,表示開始搜尋下一個匹配項的字元位置,從  0  算起。 · source  返回Regex的字串表示 , 按照字面量形式而非傳入建構函式中的字串模式返回。 通過這些屬性可以獲知一個Regex的各方面資訊,但卻沒有多大用處,因為這些資訊全都包含在模式聲明中。  var pattern1 = /\[bc\]at/i;console.log(pattern1.global); //falseconsole.log(pattern1.ignoreCase); //trueconsole.log(pattern1.multiline); //falseconsole.log(pattern1.lastIndex); //0console.log(pattern1.source); //"\[bc\]at" var pattern2 =  new RegExp("\\[bc\\]at", "i");console.log(pattern2.global); //falseconsole.log(pattern2.ignoreCase); //trueconsole.log(pattern2.multiline); //falseconsole.log(pattern2.lastIndex); //0console.log(pattern2.source); //"\[bc\]at" 儘管第一個模式使用的是字面量,第二個模式使用了 RegExp  建構函式,但它們的 source  屬性是相同的。可見,  source  屬性儲存的是規範形式的字串,即字面量形式所用的字串。  建構函式屬性 · $_ input  返回最近一次匹配的字串 · $& lastMatch  返回最近一次的匹配項 · $+ lastParen  返回最近一次匹配的擷取的群組 · $` leftContext  返回被尋找的字串中從字串開始位置到最後匹配之前的位置之間的字元 · $’ rightContext  返回被搜尋的字串中從最後一個匹配位置開始到字串結尾之間的字元 · $* multiline  檢測運算式是否採用多行匹配 m  方法  執行個體方法 test() 方法在字串中檢測模式比對,返回 true 或 false  var re = null, i;  for (i = 0; i < 10; i++) { re = /cat/g; console.log(re.test("catastrophe")); //true }  for (i = 0; i < 10; i++) { re =  new RegExp("cat", "g"); console.log(re.test("catastrophe")); //true } RegExp  對象的主要方法是  exec() ,該方法是專門為擷取的群組而設計的。 exec() 接受一個參數,即 要應用模式的字串,然後返回包含第一個匹配項資訊的數組;或者在沒有匹配項的情況下返回  null 。 返回的數組雖然是  Array  的執行個體,但包含兩個額外的屬性: index 和  input 。其中, index  表示匹配 項在字串中的位置,而  input  表示應用Regex的字串。在數組中,第一項是與整個模式比對 的字串,其他項是與模式中的擷取的群組匹配的字串(如果模式中沒有擷取的群組,則該數組只包含一項)。  var text = "cat, bat, sat, fat"; var pattern1 = /.at/; var matches = pattern1.exec(text);console.log(matches.index); //0console.log(matches[0]); //catconsole.log(pattern1.lastIndex); //0 matches = pattern1.exec(text);console.log(matches.index); //0console.log(matches[0]); //catconsole.log(pattern1.lastIndex); //0  var pattern2 = /.at/g; var matches = pattern2.exec(text);console.log(matches.index); //0console.log(matches[0]); //catconsole.log(pattern2.lastIndex); //3 matches = pattern2.exec(text);console.log(matches.index); //5console.log(matches[0]); //batconsole.log(pattern2.lastIndex); //8 第一個模式 pattern1  不是全域模式,因此每次調用  exec()  返回的都是第一個匹配項(  “cat”  )。而第二個模式  pattern2  是全域模式,因此每次調用  exec()  都會返回字串中的下一個匹配項,直至搜尋到字串末尾為止。此外,還應該注意模式的  lastIndex  屬性的變化情況。在全域匹配模式下,  lastIndex  的值在每次調用  exec()  後都會增加,而在非全域模式下則始終保持不變。  字串方法 · match  找到一個或者多個Regex的匹配 · replace  替換與Regex匹配的子串 · search  檢索與Regex匹配的值 · split  把字串分割為字串數組來源: liuguoquan727

JavaScript參考型別RegExp

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.