日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)javascript|JQuery → 《javascript權(quán)威指南》正則式match和exec方法解析

      《javascript權(quán)威指南》正則式match和exec方法解析

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2013/1/10 15:18:37字體大。A-A+

      作者:西西點(diǎn)擊:0次評論:0次標(biāo)簽: 正則式

      • 類型:編程輔助大。71KB語言:英文 評分:3.3
      • 標(biāo)簽:
      立即下載

      最近看了《javascript權(quán)威指南》里面的正則部分,match和exec方法有一些相同點(diǎn)和不同點(diǎn),在這里寫一下加深一下印象。

      1. 這兩個(gè)方法,如果匹配成功,返回一個(gè)數(shù)組,匹配失敗,返回null。

      2. 當(dāng)RegExp的global屬性為false時(shí),這兩個(gè)方法的返回?cái)?shù)組是一樣的。

        數(shù)組的第0個(gè)元素是整個(gè)pattern的第一個(gè)匹配字符串,接下來的元素是pattern第一個(gè)匹配中的子匹配字符串。

        此外,數(shù)組還有index和input兩個(gè)額外屬性,index是匹配字符串的起始位置,input是整個(gè)輸入字符串。

        此時(shí),RegExp的lastIndex屬性一直是0。

      JavaScript權(quán)威指南 第五版
      5.7
      類別: 電子教程    大。66.2M    語言: 中文
      查看詳細(xì)信息 >>

      demo:

          var s = 'this is a string';
          var p = /\b\w*(i)s\b/;
          var rm = s.match(p);
          var re = p.exec(s);
          console.log('match_array: ' + JSON.stringify(rm));
          console.log('match_array_index: ' + rm.index);
          console.log('match_array_input: ' + rm.input);
          console.log('----------------------------');
          console.log('exec_array: ' + JSON.stringify(re));
          console.log('exec_array_index: ' + re.index);
          console.log('exec_array_input: ' + re.input);

      顯示結(jié)果為(firefox控制臺(tái)):

      match_array: ["this","i"]
      
      match_array_index: 0
      
      match_array_input: this is a string
      
      ----------------------------
      
      exec_array: ["this","i"]
      
      exec_array_index: 0
      
      exec_array_input: this is a string

      3. 當(dāng)RegExp的global屬性為true時(shí),返回的數(shù)組是不同的。

        match方法返回的數(shù)組包含著所有匹配字符串,沒有子匹配字符串和額外屬性。此時(shí),lastIndex屬性無效。

        exec方法返回的數(shù)組格式與global為false時(shí)一樣,只是此時(shí)RegExp的lastIndex屬性有效,匹配是從lastIndex所指示的字符開始的,并且方法執(zhí)行后會(huì)將lastIndex置為本次匹配字符串的下一個(gè)字符處,所以循環(huán)執(zhí)行exec方法時(shí)會(huì)依次匹配整個(gè)字符串,直到字符串最后返回null,并將lastIndex置0。

      demo:

          var s = 'this is a string';
          var p = /\b\w*(i)s\b/g;
          var rm = s.match(p);
          var re;
          console.log('match_array: ' + JSON.stringify(rm));
          console.log('match_array_index: ' + rm.index);
          console.log('match_array_input: ' + rm.input);
          while(re = p.exec(s)){
              console.log('----------------------------');
              console.log('exec_array: ' + JSON.stringify(re));
              console.log('exec_array_index: ' + re.index);
              console.log('exec_array_input: ' + re.input);
              console.log('regexp_lastIndex: ' + p.lastIndex);
          }
          console.log('----------------------------');
          console.log('exec_array: ' + re);
          console.log('regexp_lastIndex: ' + p.lastIndex);

      結(jié)果:

      match_array: ["this","is"]
      
      match_array_index: undefined
      
      match_array_input: undefined
      
      ----------------------------
      
      exec_array: ["this","i"]
      
      exec_array_index: 0
      
      exec_array_input: this is a string
      
      regexp_lastIndex: 4
      
      ----------------------------
      
      exec_array: ["is","i"]
      
      exec_array_index: 5
      
      exec_array_input: this is a string
      
      regexp_lastIndex: 7
      
      ----------------------------
      
      exec_array: null
      
      regexp_lastIndex: 0

      綜上:

      在沒有g(shù)標(biāo)識(shí)符時(shí),match和exec方法效果是一樣的;有g(shù)標(biāo)識(shí)符時(shí),exec方法可以提供最完整的匹配結(jié)果。

      這里順便提一下RegExp.test()方法,它是exec方法的簡化版,有匹配結(jié)果就返回true,沒有匹配結(jié)果就返回false,執(zhí)行過程與exec是一樣的。相當(dāng)于 (p.exec(s) != null)。

      RegExp的lastIndex屬性在有g(shù)標(biāo)識(shí)符,且在exec和test方法中是有效的,其他地方是無效的。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
        推薦文章

        沒有數(shù)據(jù)