做密码判断需要支持:6~15位字符,大写字母,小写字母,数字的组合,缺一不可;并密码内容不包含特殊字符
写了:
checkPsWord: function(psword){
var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,15}$/;
var reg2 = /(?=.*[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)])/;
if( !reg2.test(psword) ){
if( reg.test(psword) ){
return true;
}else{
return false;
}
}else{
return false;
}
}
或者
checkPsWord: function(psword){
var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,15}$/;
var reg2 = /^\w+$/;
if( reg2.test(psword) ){
if( psword.indexOf("_") == -1){
if( reg.test(psword) ){
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}
结果在ie7下该方法出现问题,经分析发现是ie7下对正则表达式中的(?=.)支持不好
于是改为:
checkPsWord: function(psword){
var reg = /^(?!\d+$)(?![a-z]+$)(?![A-Z]+$)[a-zA-Z0-9]{6,15}$/;
if( reg.test(psword) ){
return true;
}else{
return false;
}
}