最近的操作过程中出现了确认密码格式的常规问题。密码格式要求如下:
密码是6-20位数字、字母或下划线,至少包含2个以字母开头的字符
然后自己写了几个,在网上查了一下,都没有完全遵守这个密码规则。
后来将之前用过的几种规则进行各种综合、试错,终于找到了能验证该密码规则的正则。废话不多说,上正则:
/^[a-zA-Z](?![a-zA-Z]+$)w{5,19}$/
【密码为6-20位数字、字母或下划线,至少包括其中两种,以字母开头】正则规则图
下面是几种对于该正则的测试:
const passwordReg = /^[a-zA-Z](?![a-zA-Z]+$)w{5,19}$/
('aaaaa1') // true
('aaaaa_') // true
('a111111') // true
('a_______') // true
('Aaaaa1') // true
('1aaaaa1') // false
('_aaaaa1') // false
('aaaaaa') // false
('111111') // false
('______') // false