實現代碼如下,起初測試正常(後來遇到問題),先來看最初的代碼
復制代碼 代碼如下:
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/>"
}
以上代碼起初一切正常,在接下來的測試中發現,如果電驢地址中存在全角字符時就匹配就會失敗。遂改用如下寫法
復制代碼 代碼如下:
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/>"
}
結論,點(.)符號在匹配任意字符時還是有局限性,具體規則不詳,暫且可用[\s\S]代之,同理[\d\D]或[\w\W]亦可。