0

可能重复:
是否有用于电子邮件地址验证的 php 库?
如何在php5中验证电子邮件?

我知道有很多关于电子邮件地址正则表达式的问题。我的问题有一个特定的要求,我一直无法找到答案。

我需要一个匹配电子邮件地址并允许地址标签的正则表达式,例如“testing+tags@gmail.com”。我发现的大多数正则表达式在包含标签的电子邮件地址上都失败了。

注意请不要把我指向这个链接。我正在寻找实用的东西,而不是完美的东西

编辑 我知道大多数网络应用程序框架中都存在内置验证。RoR、PHP、Django 等都内置了它。但有时,无论出于何种原因,都有特殊需要。也许用户不能使用验证。也许他们正在用一些晦涩难懂的语言编写他们的应用程序,这些语言没有内置的验证功能,或者有它们,但它们已经过时了。在这种情况下,正则表达式仍然有用

4

2 回答 2

8

可以 改为使用filter_var验证电子邮件

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));

您的案例示例:

echo filter_var('bob+long@example.com', FILTER_VALIDATE_EMAIL) !== false? 'Valid': 'Invalid';
于 2012-08-16T14:42:58.077 回答
6

我个人最喜欢的一直是这个:

/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

另一个流行的也是

/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/

如果您在 PHP 中执行此操作,并且如果您的问题可行,我建议您filter_var按照其他建议使用。如果您需要一个实用且被理解为不完美的正则表达式,这只是一个建议。

于 2012-08-16T14:45:55.417 回答