Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.2k 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 Answer

0 votes
by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...