首页新闻找找看学习计划

js正则匹配div问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2012-07-07 12:44

data=<html><head><title></title></head><body><div id='dv_131'>
<div class="cpmc">企业动态
<a href="#photo" style="outline:none"><img class="photolink" src="template/image/photo.png" alt="点击欣赏图片" title="点击欣赏图片" /></a>
</div>
</div></body></html>

 

var re=new RegExp(/<div id=\'dv_131\'[^>]*?>(.*?)</div>/,'gi');
var dv=re.exec(data);

通过正则匹配要得到<div id='dv_131'>
<div class="cpmc">企业动态
<a href="#photo" style="outline:none"><img class="photolink" src="template/image/photo.png" alt="点击欣赏图片" title="点击欣赏图片" /></a>
</div>
</div>

dv得到的内容为空,正则哪里有问题

bindolphin的主页 bindolphin | 初学一级 | 园豆:47
提问于:2012-06-15 15:35
< >
分享
所有回答(3)
0

没细看,但最好是把:

var re=new RegExp(/<div id=\'dv_131\'[^>]*?>(.*?)</div>/,'gi');

修改为:

var re=new RegExp(/<body><div id=\'dv_131\'[^>]*?>(.*?)</div></body>/,'gi');

无之无 | 园豆:5085 (大侠五级) | 2012-06-15 16:01

不对

支持(0) 反对(0) bindolphin | 园豆:47 (初学一级) | 2012-06-15 20:42
1

是要匹配<body></body>中间的部分嘛.?

不知道这样可不可以.?
(?<=<body>)[\s\S]+?(?=</body>)

 

你的应该是(.*?)地方错了,点好像是不匹配\n的,
<div id='dv_131'[^>]*?>(?:.|\n)*?</div>应该是写成这样就可以了

 

我没有给你加转义的符号,你自己加上试试吧

只会造轮子 | 园豆:2448 (老鸟四级) | 2012-06-15 16:06

哈哈 正解啊 我已经匹配好了

支持(0) 反对(0) _Dongzi_ | 园豆:200 (初学一级) | 2013-03-31 01:04
0

下个Jquery并且引用 

 

<script type="text/javascript" src="/jquery/jquery.js"></script>

<script type="text/javascript">

$(document).ready(function(){

 var re = $("#dv_131").html();
 
});

</script>

hyjxty | 园豆:202 (菜鸟二级) | 2012-06-15 18:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册