【发布时间】:2015-06-14 15:14:59
【问题描述】:
处理密码字段。
字段容器字母(小写、大写)、数字和一些特殊字符的正则表达式如下所示:
^([a-z,A-Z,0-9,#,$,%,&,_,]{8,20})*$
请告诉我,如果我希望每个密码短语至少有一个小写字母、一个大写字母和一个数字,应该如何修改?
例如,对于 3 个字符的长传,它是:
- 'aB3' - 通过
- 'ab3' - 失败
【问题讨论】:
处理密码字段。
字段容器字母(小写、大写)、数字和一些特殊字符的正则表达式如下所示:
^([a-z,A-Z,0-9,#,$,%,&,_,]{8,20})*$
请告诉我,如果我希望每个密码短语至少有一个小写字母、一个大写字母和一个数字,应该如何修改?
例如,对于 3 个字符的长传,它是:
【问题讨论】:
您需要使用前瞻,还需要删除字符类中存在的所有逗号。
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)[a-zA-Z0-9#$%&_]{8,20}$
请注意,密码长度必须至少为 8 个字符且最多为 20 个字符。
【讨论】:
此答案已存档,因为它很糟糕。
使用+ 令牌,它告诉引擎尝试查找一个或多个前面的令牌。例如:
^(?=[a-z]+)(?=[A-Z])+(?=[0-9])+(?=[#$%&_\,\.]*)$
然后,在代码的其他地方使用长度检查来验证长度。
【讨论】: