首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 判斷 Email 格式的正則表達式詳細解析

     編輯:PHP 相關知識

在 PHP 開發中,驗證使用者輸入的電子郵件格式是常見需求。本文深入解析一個經典的 Email 正則表達式,並提供可直接使用的函數範例。

正則表達式拆解

^(w+((-w+)|(.w+))*)+w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$
  • ^:字串開頭
  • (w+((-w+)|(.w+))*):匹配使用者名稱部分,允許字母、數字、底線、連字號與點號組合
  • +:匹配加號(本模式中似為筆誤,實際應為允許特定字元)
  • @:匹配 @ 符號
  • [A-Za-z0-9]+:域名主體,字母數字組合
  • ((.|-)[A-Za-z0-9]+)*:子域名部分,可重複出現
  • .:匹配點號
  • [A-Za-z0-9]+:頂級域名
  • $:字串結尾

PHP 驗證函數範例

<?php
function isEmail($input = null) {
    $email = $input;
    // 使用 ereg 已棄用,建議改用 preg_match
    if (preg_match('/^[a-zA-Z][a-zA-Z0-9_]{3,9}@[0-9a-zA-Z]{1,10}(\.)(com|cn|com\.cn|net)$/', $email)) {
        echo $email . " 符合格式規範";
    } else {
        echo $email . " 格式錯誤";
    }
}

$email = "test@example.com";
isEmail($email);
?>

注意:原文使用的 ereg 函數在 PHP 5.3 後已棄用,現代專案請改用 preg_match 配合 PCRE 正則。上方範例已修正為 preg_match 寫法,並修正正則中的跳脫字元。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved