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

PHP 使用者註冊資訊驗證:正則表達式完整範例

     編輯:PHP 綜合知識

使用者註冊時的帳號、密碼、Email 驗證是系統安全的第一道防線。本文提供三個可直接套用的驗證函式,分別針對「中英數底線帳號」、「6-20 位英數密碼」與「標準 Email 格式」進行嚴格檢核,並說明正則語法細節。

一、帳號驗證:2-20 位中英數與底線

function is_username($username) {
    $strlen = strlen($username);
    // ^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$ : 允許 ASCII 127-255 字元
    if (!preg_match("/^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$/", $username)) {
        return false;
    }
    if ($strlen < 2 || $strlen > 20) return false;
    return true;
}

正則解析:^ 開頭 [a-zA-Z0-9_\x7f-\xff] 首字元為字母、數字、底線或高位 ASCII;+ 至少一個後續字元;$ 結尾。

二、密碼驗證:6-20 位英數字符(可擴充特殊符號)

function isPWD($value, $minLen = 6, $maxLen = 20) {
    // 僅允許英數:/^[a-zA-Z0-9]{$minLen,$maxLen}$/
    // 允許特殊符號:/^[\\~!@#$%^&*()\-_=+|{}\[\],.?\/:;'"\d\w]{$minLen,$maxLen}$/
    $match = '/^[\\~!@#$%^&*()\-_=+|{}\[\],.?\/:;\'"\d\w]{' . $minLen . ',' . $maxLen . '}$/';
    $v = trim($value);
    if (empty($v)) return false;
    return preg_match($match, $v);
}

三、Email 驗證:符合 RFC 5322 簡化版

function isEmail($value, $match = '/^[\w\d]+[\w\d-.]*@[\w\d-.]+\.[\w\d]{2,10}$/i') {
    $v = trim($value);
    if (empty($v)) return false;
    return preg_match($match, $v);
}

說明:此正則支援子網域、多層域名、2-10 字元頂級域名,適合大多數商業應用。

四、使用範例

$username = 'test_user123';
$password = 'Pass1234';
$email = 'user@example.com';

if (is_username($username) && isPWD($password) && isEmail($email)) {
    echo "驗證通過,可寫入資料庫";
} else {
    echo "資料格式錯誤";
}

將這三個函式納入專案共用函式庫,即可統一前後端驗證標準,降低資料髒污風險。

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