如何使用JavaScript提取HTML中含mailto的a标签href属性值?
提取HTML中所有mailto格式的邮箱地址
我需要从这份HTML文档中提取所有邮箱地址。文档中有若干条目,每个条目以div开头并包含多个span元素,其中包含邮箱的条目带有
<a>标签,且href属性格式为mailto:abc@gmail.com
请问如何使用JavaScript遍历并提取所有这类href属性值?
方法一:全局匹配所有mailto链接
直接选择页面中所有href属性以mailto:开头的<a>标签,快速提取邮箱:
// 获取所有带mailto前缀的a标签 const mailtoLinks = document.querySelectorAll('a[href^="mailto:"]'); // 转换为数组并提取邮箱(去除mailto:前缀) const emails = Array.from(mailtoLinks).map(link => link.href.replace('mailto:', '')); console.log(emails); // 输出所有提取到的邮箱地址
方法二:仅在目标div条目内查找
如果需要精准限定在以div开头的条目里查找,可先定位这些div,再遍历内部元素:
// 获取所有目标div条目(可根据实际给div加类名,比如div.item) const targetDivs = document.querySelectorAll('div'); const emails = []; targetDivs.forEach(div => { // 在当前div的span元素内查找mailto链接 const links = div.querySelectorAll('span a[href^="mailto:"]'); links.forEach(link => { emails.push(link.href.replace('mailto:', '')); }); }); console.log(emails);
处理带参数的mailto链接
如果href包含额外参数(如mailto:abc@gmail.com?subject=反馈),可以用正则提取纯邮箱地址:
const email = link.href.match(/mailto:([^?]+)/)[1];
内容的提问来源于stack exchange,提问作者juan
相关产品推荐
相关产品推荐

