首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请问一个正则:匹配含有某个字符串的<div>标签

2012-04-23 
请教一个正则:匹配含有某个字符串的div标签假如有一段文本是:divspan idid1a href#链接a/a

请教一个正则:匹配含有某个字符串的<div>标签
假如有一段文本是:
<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div>
<div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>
<div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>

我要根据"id2",找到这个字符串所属的直系div,并将这个div里面的a标签的超链接文本通过分组取出来

最终取出来的希望是这样的分组:

$0 <div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>
$1 链接b

(第一组返回该条件字符串所属的div内容,第二组返回该div里面的超链接文本)

[解决办法]
/<div><span\s*id="id2"><a\s*href="[^"]*">(.*?)</a></span>\S*</div>/gi
[解决办法]

JScript code
            var str= '<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div><div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div><div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>';            var re = /<div>.+?<a.+?>(.+?)<\/a>.+?<\/div>/gi;            var tmp = [];            var a = str.match(re);            for(var i = 0, len = a.length; i < len; i++){                tmp[i] = [];                tmp[i].push(a[i]);                a[i].match(re);                tmp[i].push(RegExp.$1);            }            alert(tmp.length)                        alert(tmp[0][0])            alert(tmp[0][1])                        alert(tmp[1][0])            alert(tmp[1][1])                        alert(tmp[2][0])            alert(tmp[2][1])
[解决办法]
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><div id="demo" style="display:none;"></div><script type="text/javascript">var html = '<div><span id="id1"><a href="#">链接a</a></span><div>temp1</div></div>\<div><span id="id2"><a href="#">链接b</a></span><div>temp2</div></div>\<div><span id="id3"><a href="#">链接c</a></span><div>temp3</div></div>';function f(html, id) {    document.getElementById('demo').innerHTML = html;        var result = [];        var obj = document.getElementById(id);    if (obj.length < 1) result.push('Not found!');    else {        result.push('<div>' + obj.parentNode.innerHTML + '</div>');        result.push(obj.getElementsByTagName('a')[0].innerHTML);    }        return result;}alert(f(html, 'id2'));</script></body></html>
[解决办法]
/<div><span\s*id="id2"><a\s*href="[^"]*">(.*?)</a></span>[\d\D]*?</div></div>/gi

热点排行