如何用一次正则表达式,取出指定HTML标签下的多个子标签内容?
<ulid='e5e'><li><a>e5e1</a></li><li><a>e5e2</a></li></ul><ulid='x6'><li><a>x61</a></l...
<ul id='e5e'>
<li><a>e5e1</a></li>
<li><a>e5e2</a></li>
</ul>
<ul id='x6'>
<li><a>x61</a></li>
<li><a>x62</a></li>
</ul>
<ul id='dd2'>
<li><a>dd21</a></li>
<li><a>dd22</a></li>
</ul>
想取出x61 x62?这个内容数量是不固定的,请问如何用一次正则表达式,取出id=x6下所有的a标签值? 展开
<li><a>e5e1</a></li>
<li><a>e5e2</a></li>
</ul>
<ul id='x6'>
<li><a>x61</a></li>
<li><a>x62</a></li>
</ul>
<ul id='dd2'>
<li><a>dd21</a></li>
<li><a>dd22</a></li>
</ul>
想取出x61 x62?这个内容数量是不固定的,请问如何用一次正则表达式,取出id=x6下所有的a标签值? 展开
1个回答
展开全部
var getU = function(html, ul_id){
var reg = new RegExp("[\\s\\S]*<ul[^>]+id[=\"\']+"+ul_id+"[\"\']?[^>]*>((?:(?!<\/ul>)[\\s\\S])*)<\/ul>[\\s\\S]*","gi");
var str = html.replace(reg,"$1");
var regex = /<a>((?:(?!<\/a>)[\s\S])*)<\/a>/gi;
var arr = [];
while(regex.exec(str)){
arr.push(RegExp.$1);
}
return arr;
}
var html = "<ul id='e5e'>\r\n<li><a>e5e1</a></li>\r\n<li><a>e5e2</a></li>\r\n</ul>\r\n<ul id='x6'>\r\n<li><a>x61</a></li>\r\n<li><a>x62</a></li>\r\n</ul>\r\n<ul id='dd2'>\r\n<li><a>dd21</a></li>\r\n<li><a>dd22</a></li>\r\n</ul>";
var ul_id = "x6";
var arr = getU (html, ul_id);
console.log(arr);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询