更正密码类型字段的正则表达式

Correct regex for a password-type field

正在处理密码字段。

字段容器字母(小写、大写)、数字和一些特殊字符的正则表达式如下所示:

^([a-z,A-Z,0-9,#,$,%,&,_,]{8,20})*$

请告诉我,如果我希望每个密码至少有一个小写,一个大写和一个数字,应该如何修改?

例如,对于 3 个字符的长传,它是:

您需要使用前瞻,还需要删除字符 class.

中存在的所有逗号
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)[a-zA-Z0-9#$%&_]{8,20}$

请注意,密码长度必须至少为 8 个字符,最多为 20 个字符。

DEMO

此答案已存档,因为它很糟糕。

使用 + 标记,它告诉引擎尝试查找前面的一个或多个标记。例如:

^(?=[a-z]+)(?=[A-Z])+(?=[0-9])+(?=[#$%&_\,\.]*)$

然后,在代码的其他地方使用长度检查来验证长度。