我想检查 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 关注
- 68 浏览
添加回答
举报
0/150
提交
取消