使用正则校验密码是常用的方法,
下面是一个 密码长度为8-20位,并至少包含数字、字母(区分大小写)或符号中的两种 的校验
/**
*校验密码,是否符合规则,返回true则符合,false则不符合
*/
private boolean checkPassWord(String str) {
//TODO写一个校验Str是否为空的方法
//
String limtPasswordRegex =
"^(?![0-9]+$)(?![a-zA-Z]+$)(?![_\\W]+$)[0-9A-Za-z_\\W]{8,20}$";
return Pattern.matches(limtPasswordRegex, unitInfo.getCypher())
}
正则总体分为五个部分
(?![0-9]+$) //判断是否为纯数字
(?![a-zA-Z]+$) //判断为是否为纯字母
(?![_\\W]+$) //判断是否为纯符号
[0-9A-Za-z_\\W]{8,20} //包含了数字字母以及_下划线 各种常规符号且8~20位限制