工作中最经典的密码校验规则
需求:写一个正则校验输入密码,密码要求如下
1、必须是6~12位
2、必须包含数字、小写字母、大写字母、特色字符($@.,-之一)
新手基本会这样写
/^[a-zA-Z/d$@.,-]{6,12}$/
这样写,一眼看没啥问题,实际有些情况会出错,如全部是字母也通过,所以我们这里用前瞻运算写法,所谓的前瞻,就是用(?=a)前面加这个条件,不消耗字符,去看所有的字符是否都匹配
前瞻的写法如下
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@.,-])[a-zA-Z/d$@.,-]{6,12}$/