Sam*_*ger 5 php regex validation email-validation preg-match
我总是觉得正常表达很头疼,谷歌搜索并没有真正帮助.我目前正在使用以下表达式(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)
Run Code Online (Sandbox Code Playgroud)
请参阅filter_var和FILTER_VALIDATE_EMAIL(或https://github.com/php/php-src/blob/master/ext/filter/logical_filters.c#L499了解实际的野兽).
/^[\w-]+(\.[\w+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/
Run Code Online (Sandbox Code Playgroud)
它允许+你想要它的角色.但无论如何这都是错的.