我需要一个正则表达式来验证包含至少8个字符的密码,必须至少包含一个大写字母和一个小写字母。并且必须具体包括以下符号之一@,#,%,^,&,*,)
我找不到只包含ascii字符的那个。
提前感谢您的帮助!
答案 0 :(得分:2)
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,}$/
正则表达式断言密码必须包含至少一个Smallcase,Capitalcase字母和一个特殊字符(!@#$%^& *)。 可以将密码的最大长度从20增加到更多。
答案 1 :(得分:1)
您还可以将所有验证正则表达式放在一个数组中,然后使用every
。
var atLeastLowerCase = /[a-z]/;
var atLeastUpperCase = /[A-Z]/;
var atLeastSpecial = /[\@\#\%\^\&\*\]\)]/;
var password = "somePass@";
var passes = [atLeast8,atLeastLowerCase,atLeastUpperCase,atLeastSpecial].every(function(a){
return a.test(password);
}) && password.length>=8;
if(passes){
//do something
}else{
//do something else
}