用于弱密码的正则表达式

时间:2011-01-20 13:46:38

标签: c# regex validation

我需要一个正则表达式来检查密码是否与某些单词不相同(例如密码和12345)。我尝试了一些组合,但是在否定方面遇到了麻烦。

如果相关,则为DataAnnotations验证属性。

2 个答案:

答案 0 :(得分:2)

正则表达式中的否定最适合像

这样的负向前瞻
"^(?!password)(?!12345)"

但是,我认为用户在创建错误密码时可能非常聪明,并且创建一个能够捕获所有密码的表达式将非常困难。

答案 1 :(得分:1)

你真的想用正则表达式完成这个吗?你提出的“弱”词越多,正则表达式就会越长越混乱。为什么不创建一个未接受的单词列表,并使用循环/ LINQ来检查密码是否包含任何一个?它仍然足够快速且易于阅读。

你要求的正则表达式或我上面的解决方案都没有处理的一件事是检测n个连续的数字/字符。你在寻找12345吗?或者您正在寻找能够检测1234567,1234或56789等字符串的内容吗?这将需要一些额外的工作。