RegEx强密码

Kum*_*mar 8 regex asp.net

我有以下密码要求:

1)长度应为6-15个字符
2)应至少有一个小写字符
3)至少应有一个大写字符
4)至少应有一个数字
5)至少应有一个特殊字符
6)不应有空格

任何人都可以建议我这个要求的RegEx吗?

Pas*_*TIN 11

不确定我会使用正则表达式:正则表达式并不总是适合任何可能的工作的正确工具...

在这里,您指定了6个要求的列表; 那么,为什么不只是使用6种不同的测试,每个要求一个?
我应该补充说,这6个不同的测试真的很简单 - 虽然正则表达式要写得更难(你要求帮助 - 你可能没有进行6次测试).

这会让你的代码更容易理解,我敢打赌;-)
而且:更容易维护; 并且更容易添加/删除/更改与其中一个要求对应的条件之一.

  • 当密码不符合要求时,此方法的第二个优点是提供更好的错误消息.例如,指示*省略了*所需的字符类型.没有什么比输入您认为可行的密码并获得一般错误消息更令人沮丧的了. (6认同)

Mar*_*ers 9

我不完全确定你的"特殊字符"是什么意思,所以我解读这个意思\W,但你可以改变这个,如果你想:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W)\S{6,15}$
Run Code Online (Sandbox Code Playgroud)

  • +1,但要注意错误:http://blog.stevenlevithan.com/archives/regex-lookahead-bug (4认同)