久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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)站

      正則表達(dá)式中的反向預(yù)搜索(下)

      代碼為:

      復(fù)制代碼 代碼如下:
      //程序目的,去掉圖片路徑中的域名
      var str = ‘<img src=”//www.jb51.net/images/logo.gif”>’;
      var reg1 = /(<img)(.*(?=(http|https)://))((http|https)://[^/]*)/gim;
      str.match(reg1);
      alert(str.replace(RegExp.$4,”);

      這個用法在字符串中只有一個URL時,是適用的,但是如果字符串中包含多個域名,例如:

      復(fù)制代碼 代碼如下:
      var str = ‘<img src=”//www.jb51.net/images/logo.gif”>首頁的<a href=”//www.jb51.net”>鏈接</a>’;

      程序運(yùn)行后去掉的內(nèi)容就是第二個域名即//www.jb51.net。這是為什么呢?

      仔細(xì)查看正則表達(dá)式會發(fā)現(xiàn),在使用”(<img) “匹配了<img之后,使用“.*”匹配所有字符直到“http://”或者“https://”。請注意,正是“.*”導(dǎo)致了這個問題的出現(xiàn),這里的“.*”就是說,一直查找和匹配,盡可能的多匹配,直到最后一個限定符,也就是說術(shù)語中的貪婪(greedy)匹配。很自然,就想到了使用非貪婪的匹配解決這個問題。把正在表達(dá)式改為:

      復(fù)制代碼 代碼如下:
      //與貪婪匹配的差別就是多了一個問號“?”,貪婪”.*”,非貪婪”.*?”
      var reg1 = /(<img)(.*?(?=(http|https)://))((http|https)://[^/]*)/gim;

      解決問題的方法很簡單,但是也說明平時工作存在的一個重要問題:程序測試不充分。

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