实现代码如下,起初测试正常(后来遇到问题),先来看最初的代码
复制代码 代码如下:
var docs = document.body.innerhtml;
var links =docs.match(/ed2k.*\|\//gi);//注意这里 使用了点(.)符号匹配任意字符
document.body.innerhtml = ;
for( var link in links){
document.body.innerhtml += links[link]+
}
以上代码起初一切正常,在接下来的测试中发现,如果电驴地址中存在全角字符时就匹配就会失败。遂改用如下写法
复制代码 代码如下:
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]+
}
结论,点(.)符号在匹配任意字符时还是有局限性,具体规则不详,暂且可用[\s\s]代之,同理[\d\d]或[\w\w]亦可。