我创建了这个Regex
来验证我在项目中需要的用户名:
^(?=.{3,32}$)(?!.*[._-]{2})(?!.*[0-9]{5,})[a-z](?:[\w]*|[a-z0-9\.]*|[a-z0-9-]*)[a-z0-9]$
它运作得很好;但是我想知道它是否有任何改进和优化,因为我并不是一个正则表达式的人。
正则表达式和测试可用here。
规则是:
[a-z]
[a-z0-9]
[a-z0-9\._-]
p1234
是匹配而p12345
不是。[\._-]
中的一个。我的意思是用户名可以包含.
或-
或_
.
,-
和_
后面应加上字母数字。我的意思是.
无法跟随另一个.
。他们不应该在彼此附近。试验:
j1vad-amiry match
j1vad-ami-ry match
ja23d_am8ry match
ja_23d_am8ry match
jav5d2.am3y match
jav.ad.amiry match
jav.ad.ami.ry.2 match
ja3fd4 match
page2491 match
page24915 not match
jav-ad_amiry not match
javad_am-iry not match
jav.ami-ry not match
jav.ami_ry not match
jav.ami__ry not match
2jav not match
2jav_ad not match
2jav_ad3 not match
提前致谢。