//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,}";