JS匹配任意字符的正则表达式写法

      今天在写一个小应用的时候遇到个问题,原本是想捕捉到页面中所有电驴地址,以便迅雷抓取。
实现代码如下,起初测试正常(后来遇到问题),先来看最初的代码
代码如下:
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]亦可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值