现在,有一个这样的需求,用户通过表单提交过来的注册数据中,我们需要验证一下密码字段是否符合我们对其强度的要求。
要求:
- 6位以上长度
- 字母、数字和符号的组合
对于第一个要求,我们直接通过确保 len(password) > 6 就可以了;
那么对于第二个要求,我们可能就需要看下这三个条件通过排列组合能生成多少种可能了:
a
字母 + 数字 + 符号
[A-Za-z]+\d+\W+
b
字母 + 符号 + 数字
[A-Za-z]+\W+\d+
a&b
字母 +((数字 + 符号)或 (符号 + 数字))
[A-Za-z]+((\d+\W+)|(\W+\d+))
c
数字 + 字母 + 符号
\d+[A-Za-z]+\W+
d
数字 + 符号 + 字母
\d+\W+[A-Za-z]+
c&d
数字 +((字母 + 符号)或(符号 + 字母))
\d+(([A-Za-z]+\W+)|(\W+[A-Za-z]+))
e
符号 + 字母 + 数字
\W+[A-Za-z]+\d+
f
符号 + 数字 + 字母
\W+\d+[A-Za-z]+
e&f
符号 +((字母 + 数字)或(数字 + 字母))
\W+(([A-Za-z]+\d+)|(\d+[A-Za-z]+))