我正在回顾一个项目并整理一些验证位,通常我会使用正则表达式检查验证电子邮件是否正确,然后我遇到了:http://de2.php.net/manual/en/function.filter-var.php
现在我尝试了几项测试,但我没有得到预期的结果。
$email_b = 'bog^us@gmail.com';
var_dump(filter_var($email_b, FILTER_SANITIZE_EMAIL));
返回:
string(16) "bog^us@gmail.com"
但对我来说,没有消毒,然后当我尝试
时if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "This (email_b) email address is considered valid.";
}
我再说一遍,这不是一个有效的电子邮件地址。
我在这里错过了什么吗?
答案 0 :(得分:3)
是的,你错过了一些东西。 bog^us@gmail.com
是有效的电子邮件地址,因此您的测试会返回正确的结果。请参阅此文章,快速了解电子邮件地址中哪些字符有效。
http://en.wikipedia.org/wiki/Email_address
在电子邮件地址的本地部分(@之前的位),以下字符是合法的: -
加上其他一些在链接文章中有限制的其他人。
本文提供了在测试中使用的无效地址示例。如: -