匹配任意字符的正则表达式写法
更新时间:2010年04月29日 23:09:46 作者:
今天在写一个小应用的时候遇到个问题,原本是想捕捉到页面中所有电驴地址,以便迅雷抓取。
实现代码如下,起初测试正常(后来遇到问题),先来看最初的代码
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]亦可。
复制代码 代码如下:
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]亦可。
相关文章
npm安装依赖时出现Peer Dependencies冲突报错解决分析
这篇文章主要为大家介绍了npm安装依赖时出现Peer Dependencies冲突报错解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
本文给大家简单总结了下JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法,非常的简单实用,有需要的小伙伴可以参考下2016-06-06
最新评论