可能重复:
如何在php5中验证电子邮件?
我使用以下代码确保注册时提供的电子邮件地址有效.
(!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email))
Run Code Online (Sandbox Code Playgroud)
我输入了一个标准的电子邮件地址,如
yourname@company.co.uk
它被标记为无效.
任何人都可以帮我解释为什么会这样吗?
Sha*_*ngh 16
为什么不使用filter_var
var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));
Run Code Online (Sandbox Code Playgroud)
编辑
if(filter_var($email,FILTER_VALIDATE_EMAIL) === false)
{
echo 'Email is not valid';
}
else
{
//do the stuff
}
Run Code Online (Sandbox Code Playgroud)
我现在可以问你一个问题吗?这些空格在你的正则表达式中有什么作用?:-)
我很确定空格在电子邮件地址中实际上并不有效.并且,即使它们是,它们也不需要处于相对于分隔符的特定位置(例如在@角色之前和之后).
虽然我通常是使用电子邮件地址的正则表达式的同意(只发送一个确认链接的电子邮件-可以解决你的问题,然后一些一),你至少应该使用正确的正则表达式,如果你必须这样做的.
a有无数个完全有效的电子邮件地址,其背后没有实际帐户.
| 归档时间: |
|
| 查看次数: |
23819 次 |
| 最近记录: |