php - 正则表达式电子邮件 - 如何在电子邮件中允许加号?

标签 php regex validation preg-match email-validation

我总是觉得正则表达式很头疼,谷歌搜索也没什么用。我目前正在使用以下表达式 (preg_match): /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+ (\.[a-z0-9-]+)*(\.[a-z]{2,3})$/

但是,如果我想允许带有加号的电子邮件,这显然是行不通的,例如:foo+bar@domain.com

我需要如何改变我的表情才能允许它?在此先感谢您的所有帮助!

最佳答案

您应该只使用 PHP 内置的正则表达式进行电子邮件验证,因为它涵盖了所有内容:

filter_var($email, FILTER_VALIDATE_EMAIL)

参见 filter_varFILTER_VALIDATE_EMAIL (或 https://github.com/php/php-src/blob/master/ext/filter/logical_filters.c#L499 表示真正的野兽)。

关于php - 正则表达式电子邮件 - 如何在电子邮件中允许加号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369542/

相关文章:

php - 数据库查询表选择从第二行开始而不是第一行

javascript - 如何使用 javascript 添加一个文本框,其中包含在数据库中检索到的引用计数?

javascript - Hangman 更新 OO 值数组

c - 用于用户名验证的正则表达式修改

c# - 正则表达式误解

java - 使用 boolean 值从用户字符串 java 输入验证

php - 可以在运行时在 php 中将函数分配给类变量吗?

javascript - js正则表达式从包含星号的字符串中提取字符串

c# - ASP.NET MVC3 : Displaying Validation Errors from Child View in Parent View

带引号的 phppass 密码不验证