正则表达式密码匹配

时间:2014-05-14 11:18:24

标签: regex

我正在使用正则表达式模式匹配密码。
我的密码只有三个限制。

1.必须至少有1个UPTER-CHARACTER 2.给定清单中必须至少有一个特殊字符 3.长度必须至少为8个字符。

我使用了这个正则表达式:[!@#\$%\^\&*?+=._-]{1,}[a-z0-9]{6,}[A-Z]{1,}$ 但这很重要。顺序一定不重要。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

以下正则表达式应该有效:

^(?=.*[!@#\$%\^\&*?+=._-])(?=.*[A-Z]).{8,}$

Regular expression visualization

答案 1 :(得分:0)

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$

这应该有用。

答案 2 :(得分:0)

以下是我要采用的内容:

(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[!#\$%&\?])^\D.{7}

请注意,每个前瞻术语后的.*都是多余的。

(?!...)是一个负面的预测,以确保没有特殊字符。

^\D要求第一个字符为非数字。然后我只需要7个字符,因为结尾没有强制执行。

但为什么要从密码中排除特殊字符?通常情况恰恰相反。

相关问题