【发布时间】:2018-08-09 00:13:41
【问题描述】:
我需要一个用于密码验证的正则表达式。 验证规则-
- 密码区分大小写
- 长度不得超过 50 个字符
- 必须至少包含 1 个数字
- 必须至少有 1 个符号(非字母或数字)字符
- 第一个字符不能是符号(非字母或数字)
- 最后一个字符不能是符号(非字母或数字)
- 任何字符连续重复的次数不得超过 2 次li>
- 必须至少有 1 个小写字母
- 必须至少有 1 个大写字母
- 长度必须至少为 8 个字符
到目前为止我有这个 -
"^(?!.*(.)\\1{2})(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9]).
{8,50}$"
第一个和最后一个字符不能是符号时不起作用。
我试过了
^[a-zA-Z0-9](?!.*(.)\1{2})(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{6,48}[a-zA-Z0-9]$
但它不能正常工作。请帮帮我。
【问题讨论】:
-
Java != Javascript
-
为什么需要(单个)正则表达式?不能单独验证条件吗?
-
@shmosel 我需要为我正在处理的项目提供一个正则表达式
-
也给测试用例
-
@I'-'I 例如 Default$123 不适用于第二个正则表达式。对于第一个正则表达式,它将允许任何符号作为第一个和最后一个字符。