我正在尝试提出一个用于验证密码的正则表达式。限制如下:
必须至少为以下两项:
不得以空格开头或结尾,但内部可以包含空格,
到目前为止,这是我提出的最新版本:
^(?=.{7,20}$)(?:(?=.*[\d!@#\$%\^\&*\)\(+=._-])(?=.*[a-z])\S*|(?=.*[A-Z])(?=.*[\d!@#\$%\^\&*\)\(+=._-])\S*|(?=.*[A-Z])(?=.*[a-z])\S*|(?=.*[\d)\(+=._-])(?=.*[!@#\$%\^\&*\)\(+=._-])\S*)$
这适用于以上所有情况,但内部不允许有空格。我经历了多个正则表达式,这是迄今为止最好的(也是最丑陋的)。
编辑:感谢您的快速答复。为什么要有这些要求是无关紧要的。我知道,如果需要上述所有密码,密码将更加安全。但是由于并非所有客户都使用密码管理器... 现在,为什么这不是重复的问题?因为没有其他线程需要以上任何两个。他们只是从要求特定的两个开始,而不是添加另一个,依此类推。这必须是任何两个条件。
答案 0 :(得分:0)
嘿,您可以使用下面的正则表达式来满足您的要求
^(?=。 \ d)(?=。 [AZ])(?=。 [az])(?=。 [^ \ w \ d \ s:])([^ \ s]){7,20} $