我知道有很多关于电子邮件地址正则表达式的问题.我的问题有一个特定的要求,我一直无法找到答案.
我需要一个与电子邮件地址匹配的正则表达式,并允许使用地址标记,例如"testing+tags@gmail.com".我发现大多数正则表达式在包含标记的电子邮件地址上失败.
注意请不要指向此链接.我正在寻找实用的东西,而不是完美的东西
编辑 我知道大多数Web应用程序框架中都存在内置验证.RoR,PHP,Django等都内置了它.但有时候,无论出于何种原因,都有特殊的需求.也许用户无法使用验证.也许他们正在用一些没有内置验证功能的模糊语言编写他们的应用程序,或者拥有它们,但它们已经过时了.在这种情况下,正则表达式仍然有用
你可能 应该使用filter_var验证电子邮件,而不是
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
Run Code Online (Sandbox Code Playgroud)
案例示例:
echo filter_var('bob+long@example.com', FILTER_VALIDATE_EMAIL) !== false? 'Valid': 'Invalid';
Run Code Online (Sandbox Code Playgroud)
我个人最喜欢的一直是:
/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
Run Code Online (Sandbox Code Playgroud)
另一个受欢迎的也是
/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/
Run Code Online (Sandbox Code Playgroud)
如果你在PHP中这样做,如果你的问题可行,我建议使用filter_var另外建议.如果您需要一个实用且被理解为不完美的正则表达式,这仅仅是一个建议.
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |