簡體   English   中英

使用preg_match驗證PHP中的電子郵件地址時遇到問題

[英]Having a problem validating email address in PHP with preg_match

這是代碼:

if(trim($_POST['email']) == '')  {
        $hasError = true;
    } else if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
        $hasError = true;
    } else {
        $email = trim($_POST['email']);
    }

這是錯誤消息:

警告:preg_match()[function.preg-match]:在第22行的/home/bigsilkd/public_html/UBA/join.php中找不到結尾定界符'/'。

確切地說:

preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$"

應該

preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/"
                                                      ^
                                                      |
                                  This was missing ---/

您不應該使用正則表達式來驗證電子郵件。 例如,您的正則表達式不允許我的電子郵件地址+@example.org ,這是正常且有效的電子郵件。 保存我的電子郵件! 由於無效的表單驗證,它即將消失! 使用filter_var

if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    // email is valid
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM