我正在使用正则表达式模式匹配密码。
我的密码只有三个限制。
1.必须至少有1个UPTER-CHARACTER
2.给定清单中必须至少有一个特殊字符
3.长度必须至少为8个字符。
我使用了这个正则表达式:[!@#\$%\^\&*?+=._-]{1,}[a-z0-9]{6,}[A-Z]{1,}$
但这很重要。顺序一定不重要。有什么想法吗?
答案 0 :(得分:5)
以下正则表达式应该有效:
^(?=.*[!@#\$%\^\&*?+=._-])(?=.*[A-Z]).{8,}$
答案 1 :(得分:0)
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$
这应该有用。
答案 2 :(得分:0)
以下是我要采用的内容:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[!#\$%&\?])^\D.{7}
请注意,每个前瞻术语后的.*
都是多余的。
(?!...)
是一个负面的预测,以确保没有特殊字符。
^\D
要求第一个字符为非数字。然后我只需要7个字符,因为结尾没有强制执行。
但为什么要从密码中排除特殊字符?通常情况恰恰相反。