如何编写符合指定规则的alphanumeric用户名正则表达式pattern
正确的正则表达式 pattern 如下:^[a-zA-Z][a-zA-Z0-9_]{5,23}[0-9]$
修正后的完整 input 代码
<input type="text" name="username" id="username" placeholder="Choose Username" pattern="^[a-zA-Z][a-zA-Z0-9_]{5,23}[0-9]$" autocomplete="off" required>
规则匹配说明
这个正则完全覆盖你提出的所有要求:
- 强制以字母开头:开头
[a-zA-Z]限制第一位只能是大小写字母 - 强制以数字结尾:结尾
[0-9]$限制最后一位只能是数字 - 天然满足同时包含字母和数字:首尾已经分别固定为字母和数字,无需额外添加预查逻辑
- 仅允许下划线作为特殊字符:中间的字符集
[a-zA-Z0-9_]限制只能使用大小写字母、数字、下划线三类字符 - 长度限制7-25位:首尾占2位,中间量词
{5,23}对应总长度为 7~25位
原代码的问题
你原先写的^[a-zA-Z0-9_]+${7,25}存在语法错误:$是字符串结束标记,不能放在量词{7,25}前面,同时也没有实现开头字母、结尾数字的校验规则。
内容的提问来源于stack exchange,提问作者Safina Siddique
相关产品推荐
相关产品推荐

