用一条正则表达式表示会增强书写的难度,此处使用条件判断的方法来实现四种中选择三种的方式来增强密码的难度,代码如下:
//校验方法
function passwordValidate(str){
var rC = {
lW:'[a-z]',//小写字母
uW:'[A-Z]',//大写字母
nW:'[0-9]',//汉字
sW:'[\\u0020-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E]'//特殊字符
};
function Reg(str, rStr){
var reg = new RegExp(rStr);
if(reg.test(str)) return true;
else return false;
}
if(str.length < 8){
alert("请至少输入8位及以上密码");
return false;
}else{
var tR = {
l:Reg(str, rC.lW),
u:Reg(str, rC.uW),
n:Reg(str, rC.nW),
s:Reg(str, rC.sW)
};
if((tR.l && tR.u && tR.n) || (tR.l && tR.u && tR.s) || (tR.s && tR.u && tR.n) || (tR.s && tR.l && tR.n)){
//密码符合要求
return true;
}else{
alert("您的密码必须含有“小写字母”、“大写字母”、“数字”、“特殊符号”中的任意三种");
return false;
}
}
}
调用校验规则的方法,通常会在提交表单之前调用,如果该校验返回true,则提交表单,反之停止提交表单。调用方法如下:
//提交表单方法
function submit(){
var passwordValidateStatus = passwordValidate($('#password').val());//获取用户输入的密码,并将密码传入校验方法中校验
if(!passwordValidateStatus){
return false;
}
//省略提交的方法........
}