如何用一次正则表达式,取出指定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标签值?
展开
 我来答
yugi111
2017-06-19 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式