在验证php中的电子邮件地址时遇到问题

问题描述:

我无法弄清楚我要在哪里出错。试图验证电子邮件地址:在验证php中的电子邮件地址时遇到问题

if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-] +)+$/" , $emailREG)) { 
+0

我不会说正则表达式,所以我不能确定,但​​看起来你不允许使用'+'字符。如果你能够,请做。当电子邮件验证程序基本上没有时,它让我很不高兴。 – 2010-03-11 00:57:56

+1

你的第一个问题是试图用正则表达式验证电子邮件:http://stackoverflow.com/questions/36261/test-expand-my-email-regex/36277#36277 – 2010-03-11 00:58:47

尝试使用FILTER_VALIDATE_EMAIL代替:

<?php 
    $email = "[email protected] mple.com"; 

    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ 
     echo "E-mail is not valid"; 
    }else{ 
     echo "E-mail is valid"; 
    } 
?> 

小心与FILTER_VALIDATE_EMAIL filter_var。 “somebody @ example”将被验证为有效的电子邮件地址,因为它是一个有效的电子邮件地址,但可能不合意。

您也可以使用验证PEAR包。