检查密码复杂度的C#正则表达式

原文:检查密码复杂度的C#正则表达式

在用户注册与修改、重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一。

而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字、小写或大写字母、特殊字符、字符数在8-30之间,对应的正则表达式如下: 

var regex = new Regex(@"
(?=.*[0-9])                     #必须包含数字
(?=.*[a-zA-Z])                  #必须包含小写或大写字母
(?=([\x21-\x7e]+)[^a-zA-Z0-9])  #必须包含特殊符号
.{8,30}                         #至少8个字符,最多30个字符
", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);

如果要求必须包含小写、大写字母,则上面的 (?=.*[a-zA-Z]) 要改为:

(?=.*[a-z])
(?=.*[A-Z])

相关博问:匹配键盘上所有特殊字符的正则表达式如何写

检查密码复杂度的C#正则表达式

上一篇:C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)


下一篇:selenium