<!--必须有字母数字和特殊符号-->
原理:3部实现,1.必须有数字;2.必须有字母;3.必须有特殊字符
此验证方法如果碰到 '_' 则无法验证,因此在3部必须加上'_'字符,因为特殊字符/W里面不包含'_'.
java代码:
private Boolean isValid(String password){
boolean flag = false;
if (password.length() >= 8) {
/** 必须包含数字 */
String digit = "//S*[0-9]+//S*";
/** 必须包含英文字符 */
String letter = "//S*[a-zA-Z]+//S*";
/** 必须包含特殊字符 */
String especialChar = "//S*//W+//S*|//S*[_]+//S*";
if (Pattern.matches(digit, password)
&& Pattern.matches(letter, password)
&& Pattern.matches(especialChar, password)){
flag = true;
}
}
return flag;
}
jsp代码:
var digit = /^/S*[0-9]+/S*$/;
var letter = /^/S*[a-zA-Z_]+/S*$/;
var letterAndDigit = /^/S*/W+/S*|/S*[_]+/S*$/;
if (!letterAndDigit.test(newPassword.value)
|| !letter.test(newPassword.value)
|| !digit.test(newPassword.value))){
alert("不可以");
}else{
alert("可以");
}