密碼校驗需求:
1) 密碼控制只能輸入字母、數字、特殊符號(~!@#$%^&*()_+[]{}|\;:'",./<>?)
2) 長度 6-16 位,必須包括字母、數字、特殊符號中的2種
3) 密碼不能包含用戶名信息
判斷密碼是否包含數字:包含返回1,不包含返回0
int i = newPwd.matches(".*\\d+.*") ? 1 : 0;
判斷密碼是否包含字母:包含返回1,不包含返回0
int j = newPwd.matches(".*[a-zA-Z]+.*") ? 1 : 0;
判斷密碼是否包含特殊符號(~!@#$%^&*()_+|<>,.?/:;'[]{}\):包含返回1,不包含返回0
int k = newPwd.matches(".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"]+.*") ? 1 : 0;
判斷密碼長度是否在6-16位
int l = newPwd.length();
判斷密碼中是否包含用戶名
boolean contains = newPwd.contains(userId);
if (i + j + k < 2 || l < 6 || l > 16 || contains) {
return Password error;
}