邮箱地址验证是个很常见的问题,许多框架也内置了验证类,但是我见过的框架几乎都是通过正则表达式来验证的。PHP 不是有原生的验证函数,并且拥有 E-mail 地址验证功能吗?
if (filter_var("xxx@xxx.com", FILTER_VALIDATE_EMAIL)) {
// 有效
} else {
// 无效
}
那为何这些框架都舍近求远呢?是这个函数有什么缺陷或有不如正则匹配的地方吗?
手册上
filter_var (PHP 5 >= 5.2.0)
验证Email没必要也不太可能做到很严格。如果只是简单验证并且考虑兼容正则是最好的。比较严格的可以使用filter_var,这个验证可能会经常失败,比如碰到网络延时严重的邮箱,也不可靠。
实在要严格的话最简单的办法就是用邮件验证。这种方法是最稳妥的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。