//1.全部包含:大写、小写、数字、特殊字符;
String regex1 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";
//2.无大写:小写、数字、特殊字符;
String regex2 = "(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";
//3.无小写:大写、数字、特殊字符;
String regex3 = "(?=.*[A-Z])(?=.*[0-9])(?=.*[\\W_])^.*$";
//4.无数字:大写、小写、特殊字符;
String regex4 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[\\W_])^.*$";
//5.无特殊字符:大写、小写、数字;
String regex5 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])^.*$";
String regex = "(" + regex1 + ")|(" + regex2 + ")|(" + regex3 + ")|(" + regex4 + ")|(" + regex5 + ")";
特殊字符 (?=.*[\\W_]) 这个可以按自己要求修改 指定一些特殊字符(?=.*[~!@#$%^&*()_+?])
可以根据不同的要求组装最终的正则
字符串长度限制 {6,20}$
必须包含字母、数字、特殊字符 REGX_PWD_DR="^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[~!@#$%^&*()_+?])[0-9a-zA-Z~!@#$%^&*()_?]{6,20}$"
存在连续稍递增递减3位数字或字母
REGX_PWD2="^(?!.*([!-~])\\1{3,})(?!.*(?:012|210|123|321|234|432|345|543|456|654|567|765|678|876|789|987))(?!.*(?:ABC|CBA|BCD|DCB|CDE|EDC|DEF|FED|EFG|GFE|FGH|HGF|GHI|IHG|HIJ|JIH|IJK|KJI|JKL|LKJ|KLM|MLK|LMN|NML|MNO|ONM|NOP|PON|OPQ|QPO|PQR|RQP|QRS|SRQ|RST|TSR|STU|UTS|TUV|VUT|UVW|WVU|VWX|XWV|WXY|YXW|XYZ|ZYX)).+$";
/**
codeType:0数字,1字母
大写民65—90,英文小写是从97—122
**/
function createRegexStr(codeType){
var result='';
var items=[];
var i=(codeType===0)?0:65;
var max=(codeType===0)?8:89;
for(;i<max;i++){
var item=[];
item.push((codeType===0)?i:String.fromCharCode(i));
//可根据自己的要求设置连续位数
for(var j=1;j<=3;j++){
item.push((codeType===0)?(i+j):(String.fromCharCode(i+j)));
}
items.push(item.join(''));
items.push(item.reverse().join(''));
}
//英文小写
var i2 = 97,max2 = 121
if(codeType === 1 ){
for(;i2<max2;i++){
var item=[];
item.push((codeType===0)?i2:String.fromCharCode(i2));
for(var j=1;j<=3;j++){
item.push((codeType===0)?(i2+j):(String.fromCharCode(i2+j)));
}
items.push(item.join(''));
items.push(item.reverse().join(''));
}
}
result+=items.join("|");
result="(?:"+result+")";
return result;
}
function check(str) {
//可根据自己的要求设置连续位数 {4,}
var regexStr = "^(?!.*([!-~])\\1{4,})";
regexStr += "(?!.*" + createRegexStr(0) + ")";
regexStr += "(?!.*" + createRegexStr(1) + ")";
regexStr += ".+$";
console.error(regexStr);
//这里可能会出错,是因为出现在特殊字符需要转义情况,自行可根据regexStr手动添加转义得到正确的正则
var regex = new RegExp(regexStr);
return regex.test(str);
}
存在3位重复的数字和字母
REGX_PWD3="(\\w)\\1{2,}";