!preg_match返回无效的电子邮件地址错误

时间:2018-08-18 05:08:01

标签: php validation email preg-match

我已使用以下代码来确保注册时提供的电子邮件地址有效。

if (!preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
    $msg = $msg."Email Id Not Valid, Please Enter The Correct Email Id .<BR>";
    $status = "NOTOK";
}

我输入了标准电子邮件myemail@gmail.com,但将其标记为无效。

请帮助我为什么标记它。

3 个答案:

答案 0 :(得分:1)

内置验证时,您不应为此使用正则表达式:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $msg.="Email Id Not Valid, Please Enter The Correct Email Id ."; 
    $status= "NOTOK";
}

http://php.net/manual/en/filter.examples.validation.php

答案 1 :(得分:0)

尝试一下

if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i", $email)) 
{  
   $emailErr = "Email Id Not Valid, Please Enter The Correct Email Id";
}

答案 2 :(得分:0)

尝试一下...

if(isset($_POST["email"]))
{
        $emaill = filter_var($_POST["email"], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);
  // $reg = '/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/';
    if(!preg_match("/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/",$emaill))
        {
            die('<i class="fa fa-times red"></i> Enter valid email!!!');

        }
        else{
             die('<i class="fa fa-check green"></i> Valid!!!');

        }
}