You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中使用regex实现符合指定规则的用户名校验

PHP 用户名合法性校验正则方案

你目前写的/^[a-z0-9]{6,25}\S*$/不符合需求,它仅限制了前6-25位为小写字母/数字,后续可以跟任意非空字符,没有限制特殊字符范围、连续特殊字符、总长度等规则。

符合要求的正则表达式

/^[a-z0-9](?:[._-]?[a-z0-9]){5,24}$/

规则匹配说明

  • 不得包含空格:正则仅匹配小写字母、数字、.、-、_四类允许的字符,天然排除空格
  • 仅允许使用小写字母和数字,除.、-、_外无其他特殊字符:正则内仅配置了上述允许的字符范围,不会匹配其他字符
  • 不可连续出现2个及以上特殊字符:分组(?:[._-]?[a-z0-9])要求特殊字符最多只能出现1次,且后面必须跟小写字母/数字,从规则上杜绝连续特殊字符的可能
  • 不以特殊字符开头:开头^[a-z0-9]强制首字符必须是小写字母或者数字
  • 长度6-25位:首字符占1位,后续分组重复5到24次,总长度刚好落在6~25的区间内

PHP 使用示例

$username = 'test.user_01';
if (preg_match('/^[a-z0-9](?:[._-]?[a-z0-9]){5,24}$/', $username)) {
    echo "用户名合法";
} else {
    echo "用户名不合法";
}

内容的提问来源于stack exchange,提问作者Tanuj1899

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 18:45:08