最近工作中遇到一个验证密码格式的正则问题,密码格式要求如下:
密码为6-20位数字、字母或下划线,至少包括其中两种,以字母开头
然后自己写过几个,也在网上找过,都没完全符合该密码规则。后来将之前用过的几种规则进行各种综合、试错,终于找到了能验证该密码规则的正则。
废话不多说,上正则:
/^[a-zA-Z](?![a-zA-Z]+$)w{5,19}$/
![453e6f2b27e6888599aa5f69ad798d32.png](https://i-blog.csdnimg.cn/blog_migrate/6f9f72468b804ea187ea9d8ba4ff58c2.jpeg)
【密码为6-20位数字、字母或下划线,至少包括其中两种,以字母开头】正则规则图
下面是几种对于该正则的测试:
const passwordReg = /^[a-zA-Z](?![a-zA-Z]+$)w{5,19}$/passwordReg.test('aaaaa1') // truepasswordReg.test('aaaaa_') // truepasswordReg.test('a111111') // truepasswordReg.test('a_______') // truepasswordReg.test('Aaaaa1') // truepasswordReg.test('1aaaaa1') // falsepasswordReg.test('_aaaaa1') // falsepasswordReg.test('aaaaaa') // falsepasswordReg.test('111111') // falsepasswordReg.test('______') // false