【发布时间】:2021-09-06 10:02:00
【问题描述】:
我正在尝试使用正则表达式和 PHP 进行用户名验证。 要求是:
- 没有空格
- 仅小写字母和数字
- 除 (.)、(-)、(_) 外无特殊字符,且用户不能同时使用两个或多个特殊字符
- 用户名不应以特殊字符开头
- 最小长度为 6,最大长度为 25
这是我到目前为止所做的
/^[a-z0-9]{6,25}\S*$/
【问题讨论】:
标签: php regex validation
我正在尝试使用正则表达式和 PHP 进行用户名验证。 要求是:
这是我到目前为止所做的
/^[a-z0-9]{6,25}\S*$/
【问题讨论】:
标签: php regex validation
如果用户名末尾不能有特殊字符,请使用
^(?=.{6,25}$)[a-z0-9]+(?:[._-][a-z0-9]+)*$
否则,如果最后可以有一个特殊的字符:
^(?=.{6,25}$)[a-z0-9]+(?:[._-][a-z0-9]+)*[._-]?$
详情:
^ - 字符串开头(?=.{6,25}$) - 字符串中允许包含 6 到 25 个字符,而不是换行符[a-z0-9]+ - 一个或多个数字或小写字母(?:[._-][a-z0-9]+)* - .、_ 或 - 出现零次或多次,后跟一个或多个数字或小写字母[._-]? - 可选的.、_ 或-
$ - 字符串结束。【讨论】:
^(?!\d+$)(?=.{6,25}$)[a-z0-9]+(?:[._-][a-z0-9]+)*$