【问题标题】:!preg_match returning invalid email address error!preg_match 返回无效的电子邮件地址错误
【发布时间】:2019-01-25 02:10:28
【问题描述】:

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

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,但它将其标记为无效。

请帮助我为什么要标记它。

【问题讨论】:

标签: php validation email preg-match


【解决方案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

【讨论】:

    【解决方案2】:

    试试这个

    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";
    }
    

    【讨论】:

    【解决方案3】:

    试试这个...

    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!!!');
    
            }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    相关资源
    最近更新 更多