如何编写支持指定特殊字符的用户名验证正则表达式
用户名合法性校验正则方案
核心匹配规则
首先明确合法用户名仅允许使用以下字符:
- 大小写英文字母(a-z、A-Z)
- 阿拉伯数字(0-9)
- 指定特殊字符:
%^&@#$^*:'.-_
最终正则表达式
需要全量匹配用户名的场景下,通用正则写法如下:
^[a-zA-Z0-9@%^&*#$:'._-]+$
各部分说明
^匹配字符串的开始位置,避免合法字符前面出现违规内容[a-zA-Z0-9@%^&*#$:'._-]是允许的字符集,此处将-放在字符集末尾,避免被识别为范围符号,无需额外转义+限定用户名长度至少为1位,如果有明确的长度要求,可替换为{最小长度,最大长度},比如要求4-16位就写成{4,16}$匹配字符串的结束位置,避免合法字符后面出现违规内容
测试验证
你给出的所有合法示例均可正常匹配:
raaghu@09$%^&:匹配通过@Raaghu098:匹配通过Raaghu:匹配通过9raghu:匹配通过
可选优化
如果你的开发环境支持正则修饰符,可以添加i修饰符忽略大小写,简化写法如下:
^[a-z0-9@%^&*#$:'._-]+$
内容的提问来源于stack exchange,提问作者user1528398
相关产品推荐
相关产品推荐

