您的位置:首页 > Web前端 > JavaScript

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

2010-04-29 00:00 429 查看
实现代码如下,起初测试正常(后来遇到问题),先来看最初的代码
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]亦可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息