检查密码复杂度的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])

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

posted @ 2014-10-30 14:48  dudu  阅读(16843)  评论(2编辑  收藏  举报