登录
首页 >  文章 >  前端

如何使用正则表达式准确解析HTML文本中的a标签href地址?

时间:2024-12-11 10:00:35 404浏览 收藏

大家好,我们又见面了啊~本文《如何使用正则表达式准确解析HTML文本中的a标签href地址? 》的内容中将会涉及到等等。如果你正在学习文章相关知识,欢迎关注我,以后会给大家带来更多文章相关文章,希望我们能一起进步!下面就开始本文的正式内容~

如何使用正则表达式准确解析HTML文本中的a标签href地址?

JS如何使用正则表达式解析html文本

问题:

想要使用正则表达式解析html文本,并获取其中每个a标签的href地址,应该如何书写正则表达式?

尝试:

const r1 = s.match(/活动开展情况[\s\S]*<\/ul>/g)[0]
const r2 = r1.match(/(?<=href=").*?(?=")/g)

错误:

上述代码会匹配到不想要的#、javascript:void(0)等内容,无法准确获取想要的结果。

解决方案:

由于自己写正则容易误配,建议使用html解析器来进行解析,更加安全稳妥。例如,可以使用jquery中的$(html).find('>li>a')来查找所有a标签,然后使用map方法获取它们的href地址:

使用jquery:

$(html).find('>li>a').map((_, a) => $(a).attr('href'))

使用ES6:

[...$(html).find('>li>a')].map(a => $(a).attr('href'))

输出:

[
    "/eduadmin/SpecialInfo/SpecialInfo?AreaID=533167224&AreaType=1&SpecialCode=3",
    "/eduadmin/SpecialInfo/SpecialInfo?AreaID=533167224&AreaType=1&SpecialCode=4",
    "/eduadmin/SpecialInfo/SpecialInfo?AreaID=533167224&AreaType=1&SpecialCode=6",
    "/eduadmin/SpecialInfo/SpecialInfo?AreaID=533167224&AreaType=1&SpecialCode=9",
    "/eduadmin/DevelopActivity/SystemActivityManage/2/-1"
]

到这里,我们也就讲完了《如何使用正则表达式准确解析HTML文本中的a标签href地址? 》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>