2014-10-16 112 views
-4

我希望能帮助验证PHP中的电子邮件地址。我需要的电子邮件的格式是[email protected].com.ca.org是有效的顶级域名。为什么我的电子邮件验证不起作用

我的功能是:

function validateEmail($email) 
{ 
    $regex = "/[a-zA-Z0-9_-.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/"; 
    if (!preg_match($regex, $email)) 
    { 
     return "<li>Email is in wrong format</li>" 
    } 
} 
+0

你是什么意思的“不工作”?你的脚本是否运行?你有什么尝试? – dimo414 2014-10-16 22:52:53

+1

你应该逃避你的第一个字符类的最后一个连字符。也就是说,验证电子邮件地址是非常困难的,特别是使用RegExp。改为使用带'FILTER_VALIDATE_EMAIL'的PHP'filter_var()'函数。 – 2014-10-16 22:53:12

+0

根据你的问题,你的正则表达式应该是:http://regex101.com/r/zF1gI2/2 - 请更清楚你的问题,因为我认为这是不正确的... – 2014-10-16 22:54:45

回答

-1

用途:

/[a-zA-Z0-9-_.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/ 

/[a-zA-Z0-9_\-.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/ 

说 - 后_将使一片混乱,所以无论是逃避它或之前把它_

+0

好吧,确定名称和姓氏部分,但不是我在@后需要的mohawkcollege。我是新来的PHP,我很困惑与正则表达式。谢谢你的帮助。 – PedroIt 2014-10-16 23:02:07

+0

这不能解决问题... – dimo414 2014-10-16 23:05:21

+0

你的意思是你只验证mohawkcollege.TLD?试试[a-zA-Z0-9 -_。+] + @ mohawkcollege。[a-zA-Z] + – anhlc 2014-10-16 23:09:08

相关问题