我想檢查 PHP 中的用戶名是否滿足以下條件:必須以字母開頭(一個或多個)可以包含字母(可選,任意長度)、數字(可選,任意長度)或下劃線(可選,僅一個)必須以字母數字字符結尾字母不區分大小寫如何使用preg_match()函數匹配此模式?這是我嘗試過的模式。但我不知道如何設置可選量詞:^[a-z][a-z0-9_]*[a-z0-9]$
1 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
您的模式幾乎可以工作,但它允許多個下劃線。為了防止這種情況,您可以使用以下模式:
^[a-z][a-z0-9]*_?[a-z0-9]+$
細節:
^ # Beginning of the string.
[a-z] # Matches exactly one English letter.
[a-z0-9]* # Matches zero or more English alphanumeric character (i.e., letter or digit).
_? # Matches zero or one underscore characters.
[a-z0-9]+ # Matches one or more English alphanumeric characters.
$ # End of the string.
請注意,為了使其不區分大小寫,您需要使用修飾符i(即/pattern/i)或使用a-zA-Z而不是僅a-z在所有字符類中使用。
- 1 回答
- 0 關注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消