我必须应用密码策略,并且我正在使用这个正则表达式(默认为我的身份服务器),它接受密码作为小写、大写、数字和特殊字符的组合:^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])).{0,100}$我需要修改它,使其不应该匹配具有超过 3 个相同字符的连续副本的字符串,例如Adminnnn@123.
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
这很棘手,但我认为这应该可行(在这里现场尝试):
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])(?!.*(.)\1\1\1)[0-9a-zA-Z!@#$%&*]{0,100}$
我使用了 4 个前瞻断言和一个否定前瞻断言。
(?=.*[0-9]) must contain a number
(?=.*[a-z]) must contain a lower case
(?=.*[A-Z]) must contain an upper case
(?=.*[!@#$%&*]) must contain a special character
(?!.*(.)\1\1\1) must not repeat the character in group 1 more than 3 times
[0-9a-zA-Z!@#$%&*] is composed of these characters
{0,100} 0 to 100 symbols allowed
添加回答
举报
0/150
提交
取消