在页面上查找所有电子邮件

4
我希望有一段JavaScript/jQuery代码,可以扫描整个页面查找电子邮件并将其存储在数组中。
我已经有了一个用于匹配电子邮件的正则表达式,并且知道如何检查文本字段是否有有效的电子邮件地址,但我不知道如何扫描整个文档/页面(包括h1标签、h2标签、锚点标签等)来查找电子邮件。请帮忙。

1
你可以获取整个正文内容,将其转换为字符串,然后使用正则表达式来获取所有实际写在正文中的电子邮件。 - Morrisda
你能给我更多关于“获取整个正文内容并将其串联”的信息吗?一些代码示例会很棒。 - user2982527
2个回答

7
我认为这就是你所需要的内容:

我想这就是你要找的:

 function getEmails() {

var search_in = document.body.innerHTML;
string_context = search_in.toString();

array_mails = string_context.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
return array_mails;

}

简短解释: 这个函数只是获取邮件内容所在的body,将其转换为字符串,然后使用简单的正则表达式(/g修饰符应用于/i修饰符也不区分大小写),以获取所有匹配的电子邮件文本。然后将这些匹配项作为数组返回。 var my_emails = getEmails() 可能是你想要的数组。


好的,我是JS新手,所以:document.body.innerHTML; 它包含所有页面元素吗?然后我将它转换为字符串,如果它匹配正则表达式,那么我将它添加到数组中?是吗? - user2982527
请看我的解释: - Morrisda
正文内容是你可能要找的电子邮件的位置。是的,那么我的编辑涵盖了其他答案。是的。 - Morrisda
好的,我想我明白了,非常感谢。更重要的问题是 - 你是如何获得这样的知识的?我应该从哪里开始呢? :) - user2982527
请勿夸大啊哈哈!我认为如果你在这里,你已经找到了一个很好的起点,另一个我强烈建议的资源是www.google.com,你可以根据自己的喜好输入许多查询。 - Morrisda
显示剩余2条评论

1
如果您正在尝试在源代码中查找电子邮件地址,可以获取整个页面的正文,并使用match()方法直接解析它们。请保留HTML标签。
// assuming you have your regex stored in a variable "regex"
var emails = document.body.match(regex);
for(var i=0; i<emails.length; i++){
    console.log(emails[i]); // or whatever you need to do with them
}

好的,我也会查看这个解决方案,谢谢帮助。 - user2982527
很高兴能够帮助。干杯! - Dropout
你能分享正则表达式代码吗? - user9437856

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接