电子邮件正则表达式正在提取一些虚拟数据

时间:2019-06-12 04:18:36

标签: javascript regex email

我正在尝试从HTML正文中提取电子邮件。我在Internet上尝试了许多解决方案来提取电子邮件,但它也提取了一些虚拟数据。 即

[ 'bootstrap-material-design@4.1.1',
'popper.js@1.12.6',
'bootstrap-material-design@4.1.1' ],     
['core-js@2.6.9'],
[ 'michael@2x.jpg',
'michael@2x.jpg',
'chuma@2x.jpg',
'chuma@2x.jpg',
'nathan@2x.jpg',
'nathan@2x.jpg',
'kyle@2x.jpg',
'kyle@2x.jpg']

我用来提取电子邮件的正则表达式在这里:

第一个

   /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

第二个

  /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi

我使用 match 函数提取电子邮件

 const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

var result = body.match(emailRegex)

有人可以帮助对所需的电子邮件进行更好的正则表达吗?

1 个答案:

答案 0 :(得分:0)

您要执行的操作过于复杂。您可以将问题分解成小块,以便更轻松地解决。

首先解析HTML并找到包含诸如<p>元素之类的文本的节点,然后对它们的内容运行正则表达式。这样一来,您的时间就会轻松得多。