我有以下密码要求:
1)长度应为6-15个字符
2)应该至少有一个小写字符
3)至少应该有一个大写的字符
4)至少应该有一个数字
5)至少应该有一个特殊字符
6)不应该有空格
有人可以建议我这个要求的RegEx吗?
答案 0 :(得分:11)
不确定我会使用正则表达式:正则表达式并不总是适合任何可能的工作的正确工具...
在这里,您指定了6个要求的列表;那么,为什么不只是使用6种不同的测试,每个要求一个? 我应该补充说,这6个不同的测试真的很简单 - 而正则表达式会更难写(你要求帮助 - 你可能没有6个测试)
这会让你的代码更容易理解,我敢打赌;-)
还有:更容易维护;并且更容易添加/删除/更改与其中一个要求对应的条件之一。
答案 1 :(得分:9)
我不完全确定“特殊字符”是什么意思所以我将其解释为\W
,但如果您愿意,可以更改此内容:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W)\S{6,15}$
答案 2 :(得分:3)
Regexlib.com为您提供了大量示例,并提供了可搜索的注册数据库。
答案 3 :(得分:1)
1 => /^.{6,15}$/
2 => /[a-z]/
3 => /[A-Z]/
4 => /\d/
5 => /[#{special_chars_for_regex}]/
6 => /^\S*$/