密码规则的正则表达式

时间:2012-03-09 09:50:22

标签: regex regex-negation

我对设置密码规则有一个奇怪的要求..:| 我的要求是设置密码规则只允许大写字母,min.password长度为5,最大密码长度为8.我使用了以下表达式。

^(?=.*[A-Z]).{5,8}$

但是,它不会那样工作。后来,我才知道[A-Z]并不意味着只允许使用大写字母,这意味着至少应该是大写字母。 它适用于范围{5,8},请指导我完成仅允许大写字母的其他要求。 我们可以尝试为所有其他事情设置否定吗?如果是的话,那么让我知道写一个否定的方法吗?

提前致谢..

2 个答案:

答案 0 :(得分:3)

以下听起来像您描述的最简单的实现:

^[A-Z]{5,8}$

我不确定为什么你需要像(?=...)那样的“零宽度正向前瞻”。只是匹配字符串,没有什么棘手的。

答案 1 :(得分:2)

规则应该是这样的:

^(?=[A-Z]{5-8}$)

这意味着:5-8 A-Z个字母后跟字符串结尾。请注意,我已将$ IN放入(),以便您可以添加其他规则/使用字符串

^(?=[A-Z]{5-8}$)(?!A+$)

例如,这是相同的加上“仅A”的排除规则,因此没有AAAAAAAAAAA ......