求验证用户名的正则式,必需以字母开头,只能包括字母\数字\下划线

panlin82130103 2007-01-31 12:53:32
如题
...全文
5284 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复
正解,谢谢,结贴
uno 2007-01-31
  • 打赏
  • 举报
回复
看你楼上的正解
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复
uno(钢盅郭子) ( ) 信誉:99 Blog 2007-01-31 15:05:13 得分: 0


^[a-zA-Z]+([a-zA-Z0-9_]{6,16})
试试
____________________________________________________
大于6的可以验证出来,但是小于16的就不行了,大家看下

-过客- 2007-01-31
  • 打赏
  • 举报
回复
我写成^[a-zA-Z]+[a-zA-Z0-9_]{6,16}$这样,不好使啊,怎么回事呢

--------------------------
要把前面那个+号去掉,你现在这么写的意思,就是最后为6~16位的a-zA-Z0-9_之一,前面为多少位的字母都可以了

^[a-zA-Z][a-zA-Z0-9_]{6,16}$
这样写加起来一共是7~17位,如果你的总长度要求是6~16位,那改下
^[a-zA-Z][a-zA-Z0-9_]{5,15}$
uno 2007-01-31
  • 打赏
  • 举报
回复
^[a-zA-Z]+([a-zA-Z0-9_]{6,16})
试试
uno 2007-01-31
  • 打赏
  • 举报
回复
没加*

* = {0,}
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复
lxcnn(过客) ( ) 信誉:100 Blog 2007-1-31 14:16:14 得分: 0



把*换成{m,n}这种形式就行了,m是最小值,n是最大值

\w{5} 5位数字,字母或下划线
\w{5,10} 5~10位的数字,字母或下划线
\w{5,} 最少5位的数字,字母或下划线
*相当于{0,}
+相当于{1,}
?相当于{0,1}
__________________________________________________________
我写成^[a-zA-Z]+[a-zA-Z0-9_]{6,16}$这样,不好使啊,怎么回事呢


-过客- 2007-01-31
  • 打赏
  • 举报
回复
TO:cancerser

我一般都是先在正则调试工具上调试,之后再用vs调试,以前还真没注意过这个问题,多谢,受教了
cancerser 2007-01-31
  • 打赏
  • 举报
回复
在这里说吧, 如果是字母 数字 _的这种要求 如果是在.net中 尽量别使用 \w
\w 是匹配 所有文字字符与_,其中也包括你系统默认语言的字符 如中文
所以 一般要象慕白兄那样写 要可靠一些
-过客- 2007-01-31
  • 打赏
  • 举报
回复
把*换成{m,n}这种形式就行了,m是最小值,n是最大值

\w{5} 5位数字,字母或下划线
\w{5,10} 5~10位的数字,字母或下划线
\w{5,} 最少5位的数字,字母或下划线
*相当于{0,}
+相当于{1,}
?相当于{0,1}
lazyfish 2007-01-31
  • 打赏
  • 举报
回复
^[a-zA-Z]\w*$
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复

lxcnn(过客) ( ) 信誉:100 Blog 2007-01-31 13:27:10 得分: 0


谢谢您的耐心解答,正则有学问啊,能告诉我如何在这里面限定字符长度呢
-过客- 2007-01-31
  • 打赏
  • 举报
回复
不是很明白楼主的意思,出现的符号全都给你解释一遍吧

^ 与字符串开始的地方匹配,不匹配任何字符
[a-zA-Z] 指a-zA-Z中的任意一个字母,但只是一个,而不是多个
^[a-zA-Z]放在一起表示以字母开头
\w 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
* 表达式不出现或出现任意次
$ 与字符串结束的地方匹配,不匹配任何字符

这样写本身就不包含汉字在内的
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复
不能为汉字的怎么加进去呢?
panlin82130103 2007-01-31
  • 打赏
  • 举报
回复
问一下,为什么前面[a-zA-z]以这个开头不需要*$,而后面不加我话,只能输入一位的字符呢?
flyin2006 2007-01-31
  • 打赏
  • 举报
回复
as above
-过客- 2007-01-31
  • 打赏
  • 举报
回复
^[a-zA-Z]\w*$
cpp2017 2007-01-31
  • 打赏
  • 举报
回复
var reg= new RegExp(/^[a-zA-Z]+[a-zA-Z0-9_]*$/gi);

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧