匹配任意字符的正則表達式寫法
更新時間:2010年04月29日 23:09:46 作者:
今天在寫一個小應(yīng)用的時候遇到個問題,原本是想捕捉到頁面中所有電驢地址,以便迅雷抓取。
實現(xiàn)代碼如下,起初測試正常(后來遇到問題),先來看最初的代碼
var docs = document.body.innerHTML;
var links =docs.match(/ed2k.*\|\//gi);//注意這里 使用了點(.)符號匹配任意字符
document.body.innerHTML = "";
for( var link in links){<BR>
document.body.innerHTML += links[link]+"<br/>"
}
以上代碼起初一切正常,在接下來的測試中發(fā)現(xiàn),如果電驢地址中存在全角字符時就匹配就會失敗。遂改用如下寫法
var docs = document.body.innerHTML;
var links =docs.match(/ed2k[\s\S]*?\|\//gi);//注意這里[\s\S]
document.body.innerHTML = "";
for( var link in links){
document.body.innerHTML += links[link]+"<br/>"
}
結(jié)論,點(.)符號在匹配任意字符時還是有局限性,具體規(guī)則不詳,暫且可用[\s\S]代之,同理[\d\D]或[\w\W]亦可。
復(fù)制代碼 代碼如下:
var docs = document.body.innerHTML;
var links =docs.match(/ed2k.*\|\//gi);//注意這里 使用了點(.)符號匹配任意字符
document.body.innerHTML = "";
for( var link in links){<BR>
document.body.innerHTML += links[link]+"<br/>"
}
以上代碼起初一切正常,在接下來的測試中發(fā)現(xiàn),如果電驢地址中存在全角字符時就匹配就會失敗。遂改用如下寫法
復(fù)制代碼 代碼如下:
var docs = document.body.innerHTML;
var links =docs.match(/ed2k[\s\S]*?\|\//gi);//注意這里[\s\S]
document.body.innerHTML = "";
for( var link in links){
document.body.innerHTML += links[link]+"<br/>"
}
結(jié)論,點(.)符號在匹配任意字符時還是有局限性,具體規(guī)則不詳,暫且可用[\s\S]代之,同理[\d\D]或[\w\W]亦可。
相關(guān)文章
echarts圖表設(shè)置寬度100%結(jié)果為100px的解決辦法
在開發(fā)一個前端項目時需要用到Element-ui的el-tabs組件和Echart開源庫,當兩者嵌套使用時,我給Echart中的圖表寬度設(shè)置為了100%,但是實際的寬度卻只有100px,這篇文章主要給大家介紹了關(guān)于echarts圖表設(shè)置寬度100%結(jié)果為100px的解決辦法,需要的朋友可以參考下2022-12-12JavaScript數(shù)據(jù)存儲 Cookie篇
這篇文章主要為大家介紹了JavaScript數(shù)據(jù)存儲 Cookie篇,感興趣的朋友可以參考一下2016-07-07javascript+HTML5 Canvas繪制轉(zhuǎn)盤抽獎
這篇文章主要為大家詳細介紹了javascrip+HTML5 Canvas繪制轉(zhuǎn)盤抽獎的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-04-04