簡體   English   中英

使用 PHP 正則表達式驗證用戶名

[英]Using PHP regex to validate username

我正在嘗試使用正則表達式驗證 PHP 中的用戶名,但我提交的所有內容均未通過檢查。 我仍然是超級新手。

if (,preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5-31}$/', $joinUser) )

規則:

  • 必須以字母開頭
  • 6-32個字符
  • 只限字母和數字

我一直在使用這個在線測試儀這個測試儀。 我閱讀了這個線程這個線程,但無法理解太多,因為它們似乎比我的要復雜一點(前瞻?和各種特殊字符)。

閱讀我鏈接到的第一個線程后,我似乎是不太了解說“字母”如何影響人們認為可以接受的東西的人之一,即外國字符、重音字符等。我真的只看英文字母表(這是 ASCII 碼嗎?)和數字 0-9。

謝謝。

唯一的問題是,你拼錯了最后一個量詞。

{5-31}必須是{5,31}

所以你的正則表達式會是

if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser) )

你可以跳過{1} ,但它不會受到傷害。

顯然你需要改變的是5-31的5,31。

工作范例:

if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5,31}$/', "moo123"))
{
    echo 'succeeded';
}
else
{
    echo 'failed';
}

嘗試這個:

if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser) )

另一個答案:

if (strlen($username) >= 5 && strlen($username) <= 31 && 
ctype_alnum($username)){

     echo "valid username";
                
}else{

     echo "invalid username";

}

暫無
暫無

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

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