萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js正則表達式中test,exec,match方法的區別介紹

js正則表達式中test,exec,match方法的區別介紹

 本篇文章主要是對js正則表達式中test,exec,match方法的區別進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

js正則表達式中test,exec,match方法的區別說明   test  test 返回 Boolean,查找對應的字符串中是否存在模式。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true     exec  exec 查找並返回當前的匹配結果,並以數組的形式返回。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); var arr = reg.exec(str); 如果不存在模式,則 arr 為 null,否則 arr 總是一個長度為 1 的數組,其值就是當前匹配項。arr 還有三個屬性:index 當前匹配項的位置;lastIndex 當前匹配項結束的位置(index + 當前匹配項的長度);input 如上示例中 input 就是 str。     exec 方法受參數 g 的影響。若指定了 g,則下次調用 exec 時,會從上個匹配的 lastIndex 開始查找。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.exec(str)[0]); alert(reg.exec(str)[0]); 上述兩個輸出都是 1a。現在再看看指定參數 g: var str = "1a1b1c"; var reg = new RegExp("1.", "g"); alert(reg.exec(str)[0]); alert(reg.exec(str)[0]); 上述第一個輸出 1a,第二個輸出 1b。     match  match 是 String 對象的一個方法。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(str.match(reg)); match 這個方法有點像 exec,但:exec 是 RegExp 對象的方法;math 是 String 對象的方法。二者還有一個不同點,就是對參數 g 的解釋。 如果指定了參數 g,那麼 match 一次返回所有的結果。 var str = "1a1b1c"; var reg = new RegExp("1.", "g"); alert(str.match(reg)); //alert(str.match(reg)); // 此句同上句的結果是一樣的 此結果為一個數組,有三個元素,分別是:1a、1b、1c。   JavaScript中經常用到正則表達式, 而正則表達式中經常用到Match和Test這兩個函數,當然還有Exec. 這裡以代碼實例來區分它們之間的不同吧.   Match Example    代碼如下: var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; var rs = str.match(regexp); //rs= Array('A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');   Test Example   代碼如下: var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; var rs = regexp.test(str); // rs = true; boolean   Exc Example   代碼如下: var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; var rs; while ((rs = regexp.exec(str)) != null) {     document.write(rs);     document.write(regexp.lastIndex);     document.write("<br />"); }   OUTPUT --------------------------------- A    1 B   2 C   3 D   4 E   5 a   27 b   28 c   29 d   30 e   31     Another   Exc Example  代碼如下: var regexp = /ab*/g; var str = "abbcdefabh"; var rs; while ((rs = regexp.exec(str)) != null) {     document.write(rs);     document.write(regexp.lastIndex);     document.write("<br />"); }   OUTPUT --------------------------------- abb   3 ab     9    
copyright © 萬盛學電腦網 all rights reserved