至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/
其中 [\s\S] 中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用 [\d\D]、[\w\W]来表示。
至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
至少8个字符,至少1个字母,1个数字和1个特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
至少8个字符,至少1个大写字母,1个小写字母和1个数字:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
第二种^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
至少1个大写字母English letter,(?=.*?[A-Z])
至少1个小写英文字母,(?=.*?[a-z]) 至少1位数字,(?=.*?[0-9]) 至少有1个特殊字符,(?=.*?[#?!@$%^&*-]) 最小8个长度.{8,}
第三种正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时…
但是,正则表达式确实有1个OR运算符,所以只需应用DeMorgan的定理,并编写1个与无效密码相匹配的正则表达式:
任何少于8个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。
所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的话,这是1个无效的密码。
第四种由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符:
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
这个正则表达式将强制执行这些规则: – 至少1个大写英文字母 – 至少1个小写英文字母 – 至少1位数字 – 至少1个特殊字符 – 最少8个长度
第五种根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用[^\w\s]作为测试 – 简单地把非字符(包括数字)和非空格字符放在一起。总而言之,这是对我有用的
至少8字符 至少1数字字符 至少1小写字母 至少1大写字母 至少1特殊字符 /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 简单演示涵盖各种情况
第六种导入JavaScript文件jquery.validate.min.js。
您可以使用此方法:
JavaScript 代码: $.validator.addMethod("pwcheck", function (value) { return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value) }); 至少1个大写英文字母 至少1个小写英文字母 至少1位数字 至少1个特殊字符
第七种尝试这个: – 最少6个字符 – 至少有1个大写字符 – 至少1个小写字符 – 至少1个特殊字符
表达式:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/
可选特殊字符:
至少1个特殊字符 至少1个数字 特殊字符是可选的 最少6个字符,最多16个字符 表达式:
/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/
如果不需要最小和最大条件,则删除.{6, 16} – 6是最小字符数限制 – 20是最大字符限制 – ?=表示匹配表达式
C#中使用正则表达式例一:
string pattern = @"^[0-9a-zA-Z_]{1,10}$";//字母数字下划线,1到10位
bool result = false;
if (!string.IsNullOrEmpty(this.txtNewPwd.Text.Trim()))
{
result = System.Text.RegularExpressions.Regex.IsMatch(this.txtNewPwd.Text, pattern);
if (!result)
{
throw new Exception("密码为字母数字下划线组合且最多10位");
}
}
例二:
string pattern = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])";
//至少1个大写字母,1个小写字母和1个数字,至少一个特殊字符,其他可以是任意字符
//初始化字符串
string str = loginModel.Password;//获取密码
Regex reg = new Regex(pattern);//密码进行比对
bool result = reg.IsMatch(str);
if (result && str.Length >= 8) //判断密码是否正确且符合要求
{
loginResult.User.ShouldChangePasswordNextLogin = false;
}
else
{
loginResult.User.ShouldChangePasswordNextLogin = true;
}