站長資訊網(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,”);

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

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

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

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

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

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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 久久精品国产99国产精偷| 国产三级精品久久| 一区二区三区日韩精品| 最新国产在线精品观看| 国产精品免费久久久久影院| 国产精品亚洲а∨无码播放| 一本色道久久88综合日韩精品| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产一区二区三区精品视频| 国产精品福利一区二区| 久久精品国产亚洲77777| 亚洲精品国精品久久99热| 国内精品久久久久久麻豆| 亚洲精品一二区| 国产福利微拍精品一区二区| 久久这里只有精品18| 亚洲综合av永久无码精品一区二区 | 国产91精品一区二区麻豆网站| 人妻少妇精品无码专区二区| 亚洲国产精品成人久久| 亚洲日韩一页精品发布| 亚洲视频在线精品| 四虎成人精品| 亚洲国产av无码精品| 人妻少妇看A偷人无码精品| 国产精品香蕉在线观看| 国产精品免费αv视频| 国产精品高清免费网站| 隔壁老王国产在线精品| 2021国产三级精品三级在专区| 四虎成人www国产精品| 亚洲人成亚洲精品| 99久久精品国产一区二区| 国产高清在线精品一区二区 | 久久久一本精品99久久精品88| 午夜精品乱人伦小说区| 日韩精品久久久肉伦网站| 国产精品日本一区二区不卡视频| 精品久久久噜噜噜久久久 | 2020国产精品永久在线| 欧美精品人爱c欧美精品|