最小长度密码的正则表达式-7没有特殊字符,至少一个大写和一个数字。
就我而言,正则表达式满足:
Killer1 - 至少一个大写字母(K),至少一个数字(1),最小长度 - 7
Melbourne123-有效
London24 - 有效
提前致谢。
答案 0 :(得分:3)
最小长度7
这一部分不出所料是最简单的。你可以使用:
.{7,}
要在单个正则表达式中执行其他检查,您需要使用look-aheads,如下所示:
至少一个大写
(?=.*[A-Z])
至少一个数字
(?=.*\d)
没有特殊字符
如果可能的话,我强烈建议不要这个要求。添加此项不会提高您的安全性,只会让您的用户感到沮丧。但是,如果你真的必须,那么:
(?!.*[^a-zA-Z0-9])
(视情况修改上述内容 - 取决于“特殊”字符的确切含义。)
将所有这些组合成一个单一的模式,最终的答案是:
\A(?=.*[A-Z])(?=.*\d)(?!.*[^a-zA-Z0-9]).{7,}
您还可以通过将“无特殊字符”和“最小长度”要求合并到单个正则表达式条件中来略微简化此正则表达式,如下所示:
\A(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9]{7,}\z
(请注意此处额外使用\z
锚点,以检查所有密码字符是否列入白名单“非特殊”字符。