久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      javascript的正則表達(dá)式學(xué)習(xí)資料復(fù)習(xí)

      關(guān)于反向引用

      復(fù)制代碼 代碼如下:
      // 測試函數(shù)
      function matchReg(reg, str) {
      var result = str.match(reg);
      if(result) {
      console.dir(result);
      } else {
      console.log(‘match failed’);
      }
      }

      var reg = /([A-Za-z]{0,6})1/;
      var str = ‘AndrewAndrew’;
      // 測試通過
      matchReg(reg, str);

      //通過(?:pattern)的方式,不記錄子表達(dá)式匹配的內(nèi)容(本例中為Andrew)
      //所以1對(duì)子表達(dá)式匹配內(nèi)容的引用失敗了
      //注意:這里強(qiáng)調(diào)的是子表達(dá)式所匹配的內(nèi)容,而不是子表達(dá)式本身
      reg = /(?:[a-zA-Z]{0,6})1/;
      // 測試不通過
      matchReg(reg, str);

      關(guān)于子表達(dá)式的定義
      var parse_number = /^-?d+(?:.d*)?(?:e[+-]?d+)?$/i;
      這是一個(gè)解析數(shù)字的正則表達(dá)式,其中的子表達(dá)式有(?:.d*)和(?:e[+-]?d+)
      .和-分別是對(duì).和-的轉(zhuǎn)義表達(dá)
      順便復(fù)習(xí)下.表示除換行符以外的其他字符
      -一般用于[a-zA-Z0-9]表示匹配范圍
      如果其中沒?:例如(.d*)那么按照先后順序,反向引用的關(guān)系如下
      1–>(.d*)
      2–>(e[+-]?d+)
      如果有更多的話,就以此類推3 4 5….
      再次強(qiáng)調(diào),引用的是子表達(dá)式匹配的內(nèi)容,是具體的文本
      關(guān)于正向預(yù)查

      復(fù)制代碼 代碼如下:
      var reg = /I like (?=shanghai)/;
      var str = ‘I like shanghai’;
      matchReg(reg, str); //測試通過

      str = ‘I like beijing’;
      matchReg(reg, str); //不通過

      跑下上面的代碼,就馬上理解什么算是正向預(yù)查了,如上面的例子,通過(?=pattern)的形式,正則 表達(dá)式預(yù)測下后面的內(nèi)容是不是符合要求,如果是那就順利匹配.
      相對(duì)地,(?!=pattern)的使用意圖正好與(?=pattern)相反,就不復(fù)述了
      關(guān)于貪心和非貪心匹配模式

      復(fù)制代碼 代碼如下:
      // 貪心
      var reg = /d{1,}/;
      var str = ‘1999’;
      matchReg(reg, str); // result[0]為1999 能多匹配就多匹配

      // 非貪心
      reg = /d{1,}?/;
      matchReg(reg, str); // result[0]為1 只匹配了一個(gè)

      從上面的結(jié)果很容易看出”貪心”和”非貪心”的含義
      pattern?這就表明非貪心匹配模式,一般情況就是貪心的
      關(guān)于Regexp對(duì)象exec函數(shù)返回的結(jié)果

      復(fù)制代碼 代碼如下:
      // 關(guān)于返回結(jié)果是個(gè)什么
      // matchReg函數(shù)中console.dir(result)能說明問題,firebug中一看便知
      關(guān)于string的replace函數(shù)
      function camelize(str) {
      return str.replace(/-(w)/g, function(inputStr, p1) {
      console.log(p1);
      return p1.toUpperCase();
      });
      }
      console.log(camelize(‘background-color’));

      function uncamelize(str, sep) {
      sep = sep || ‘-‘;
      return str.replace(/([a-z])([A-Z])/g, function(inputStr, p1, p2) {
      console.log(‘p1:%s, p2:%s’, p1, p2);
      return p1 + sep + p2;
      });
      }
      console.log(uncamelize(‘backgroundColor’, ‘-‘));

      上面兩個(gè)例子,主要用于說明replace函數(shù)的用法,當(dāng)然還有search,split等函數(shù)可以充分利用正則表達(dá)式的優(yōu)勢(shì)
      關(guān)于javascript正則表達(dá)式的最佳實(shí)踐
      就一句話:盡量的精簡,不要復(fù)雜,利于讀懂和維護(hù)!

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)