至少8位密码,包括大写、小写、数字、特殊字符中的三种即可
正则表达式:^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W_]+$)(?![a-z\\d]+$)(?![a-z\\W_]+$)(?![\\d\\W_]+$)\\S{8,}$
拆分解释:
(1)^匹配开头
(2)(?![A-Za-z]+$)匹配后面不全是(大写字母或小写字母或大小写组合)的情况,排除了(1)全是大写字母(2)全是小写字母(3)大小写组合的情况三种情况
(3)(?![A-Z\\d]+$)同理,排除了(1)大写字母(2)数字(3)大写和数字组合
(4)(?![A-Z\\W_]+$)同理,排除了(1)大写字母(2)特殊字符(因为\W中不包括_所以需要在\W后加上_,\\W中最前面的\是转义字符)(3)大写字母和特殊字符
(5)(?![a-z\\d]+$)同理,排除了(1)小写字母(2)数字(3)小写字母和数字
(6)(?![a-z\\W_]+$)同理,排除了(1)小写字母(2)特殊字符(3)小写字母和特殊字符
(7)(?![\\d\\W_]+$)同理,排除了(1)数字(2)特殊字符(3)数字和特殊字符
(8)\S 表示,非空白就匹配,\\S中最前面的\为转义字符(排除了(1)到(7)再匹配的所有就是至少三种以上的组合了)
(9){8,} 表示8位以上
(10)$匹配字符串结尾