阅读各种文章后,我决定不使用REGEX检查电子邮件是否有效,而仅使用PHP的内置filter_var函数。似乎正常,直到它开始告诉我一封电子邮件无效,因为我有一个号码。
即name@domain.com有效,而name2@domain.com无效。
我是否缺少某些东西或filter_var($email, FILTER_VALIDATE_EMAIL)真的无效?
filter_var($email, FILTER_VALIDATE_EMAIL)
PHP 5.3.3过滤器代码中使用的正则表达式基于Michael Rushton的博客中有关EmailAddressValidation的博客。它似乎确实适合您提到的情况。
您还可以检查比较电子邮件地址验证正则表达式中的某些选项(PHP中当前使用的regexp是测试的那些之一)。
然后,您可以选择一个更喜欢的正则表达式,并将其用于调用中preg_match()。
preg_match()
否则,您可以使用regexp并将其替换为文件PHP / ext / filter / logical_filter.c,function php_filter_validate_email()并重建PHP。
php_filter_validate_email()