网站用户注册功能的密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在6-20位之间。该如何写呢?
1、不能全部是数字 /^\d+$/
2、不能全部是字母 /^[a-z]+$/i
3、可以包含数字、字母,也可以只为字母或只为数字 /^[A-Za-z0-9]+$/
4、必须是数字或字母
只要能同时满足上面3个要求就可以了,写法如下:
/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/
5、包含中文、英文、数字、下划线,并且必须包含中文的正则表达式
/^[a-zA-Z0-9]{0,}[\u4e00-\u9fa5]{2,}[a-zA-Z0-9_]{0,}$/
注释一下:
^ 匹配一行的开头位置
(?![0-9]+$) 预测该位置后面不全是数字
(?![a-zA-Z]+$) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置
代码:
/*** 检测密码强度,必须由数字与字母组合,至少6位的字符串。*/
$.checkPwd = function(v){
v=$.trim(v);
if(v.length<6||v.length>30){
return "密码长度为6-30位";
}
if(/^\d+$/.test(v)){
return "全数字";
}
if(/^[a-z]+$/i.test(v)){
return "全字母";
}
if(!/^[A-Za-z0-9]+$/.test(v)){
return "只能含有数字有字母";
}
return "正确";
};