是否有可能简化这个密码正则表达式
Is it possible to simplify this password regex?
我刚刚回答了另一个正则表达式问题。
使用特定规则验证密码的jQuery方法
目标是创建一个接受以下 的正则表达式- 1个或多个大写字符
- 1个或多个小写字母
- 1位数字或特殊字符-即
!@#$%^&*()-=
等 - 长度必须至少为7个字符
我找到了一个很好的解决方案,用于'W
匹配非单词字符的特殊字符。它应该匹配特殊字符
但是我想知道这个解决方案是否可以不需要多个条件。我最初的解决方案是在一行
$.validator.addMethod("pwcheck", function(value) {
return /[A-Z]+[a-z]+['d'W]+/.test(value)
});
这符合前三个条件,但有一个问题。它只符合这个顺序。这意味着小写字母必须跟在大写字母后面,以此类推。当这样的例子通过
AGHjfd8437
其他人也是这样失败的
agTF8djRd4
我必须修改我的解决方案来通过这样的测试。这就是我想出来的。
$.validator.addMethod("pwcheck", function(value) {
return /[A-Z]+/.test(value) && /[a-z]+/.test(value) &&
/['d'W]+/.test(value) && /'S{7,}/.test(value);
});
但我想知道这是否可以组合到一个正则表达式。如果是这样,它会比第二个看起来更干净吗?
您可以使用正面查找(?=..)
:
/^(?=.*[A-Z])(?=.*[a-z])(?=.*['d'W]).{7,}$/
每一个正向前看将确保存在于您指定字符的任何位置。最终的.{7,}
将匹配至少7个字符。从开始^
到结束$
.
希望能有所帮助。
相关文章:
- 为密码验证实现正则表达式时出现问题
- 正则表达式:密码必须至少包含一个特殊字符
- 如何根据一定的标准在angularjs中使用正则表达式添加密码验证
- 密码验证器javascript正则表达式
- 正则表达式密码允许特殊字符 JavaScript
- 密码正则表达式:“至少 1 个字母、1 个数字、1 个特殊字符,并且不应以特殊字符开头”
- 密码的正则表达式必须包含至少八个字符,至少一个数字以及小写和大写字母以及特殊字符
- 正则表达式密码必须包含字母,至少一个特殊字符和至少一个数字
- 正则表达式的密码(Javascript)
- PHP 和 Javascript 中密码匹配的正则表达式
- 用于密码验证匹配的 Js 正则表达式
- 用于屏蔽连接字符串密码的正则表达式
- 不使用正则表达式的表单密码验证
- 带密码的正则表达式
- 密码正则表达式-带unicode标志的正则表达式中不允许使用原始大括号
- 无法使JavaScript密码正则表达式验证工作
- 规则较少的密码正则表达式
- 是否有可能简化这个密码正则表达式
- 密码正则表达式-不工作
- 密码正则表达式问题