我需要一个用于密码验证的正则表达式。验证规则-密码区分大小写长度不得超过 50 个字符必须至少包含 1 个数字必须至少有 1 个符号(非字母或数字)字符第一个字符不能是符号(非字母或数字)最后一个字符不能是符号(非字母或数字)不得连续重复任何字符超过 2 次必须至少有 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]$但它不起作用。请帮帮我。
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
每个限制都可以向前看:
^(?=.*\d).{8,50}
(无关)密码区分大小写
.{8,50}
长度不得超过 50 个字符且长度必须至少为 8 个字符(?=.*\d)
必须至少包含 1 个数字(?=.*(\W|_))
必须至少有 1 个符号(非字母或数字)字符[^\W_]
第一个字符不能是符号(非字母或数字)[^\W_]
最后一个字符不能是符号(非字母或数字)(?!.*(.)\1)
不得连续重复任何字符超过 2 次(?=.*[a-z])
必须至少有 1 个小写字母(?=.*[A-Z])
必须至少有 1 个大写字母
把它们放在一起:
^(?!.*(.)\1)(?=.*\d)(?=.*(\W|_))(?=.*[a-z])(?=.*[A-Z])[^\W_].{6,48}[^\W_]$
见现场演示。
添加回答
举报
0/150
提交
取消