Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

这个正则的长度如何计算的?

/^(?=.*[a-zA-Z])(?=.*d)w{6,22}$/gi

意思是 6-22为密码 至少有一个字母一个数字

比如a11111也能通过

不过我以为a11111不可以 因为往前看一个字母a 一个数字1 剩下4位1111 不满足长度为6

为什么呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

这个正则的主要部分是w{6,22},匹配6-22位的字母、数字、下划线。而前面的(?=.*[a-zA-Z])(?=.*d)是在这个基础上做限制的,第一个(?=.*[a-zA-Z])限制了必须要有字母,第二个(?=.*d)限制了必须要有数字。

你的不解主要是对?=的不理解,这个看一下他的说明,你应该就明白了。
正向肯定预查


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...