编写符合强密码规则的正则表达式遇阻,现有正则匹配失败求助
密码正则表达式修复方案
你的正则存在两个关键问题:
- 额外添加了数字强制要求(你的需求里并未要求密码必须包含数字)
- 长度限制
{10,}的位置错误,它被错误绑定在最后一个特殊字符预查规则后,导致正则要求特殊字符重复10次以上,而非整个密码长度≥10
修正后的正则表达式
^(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*()_+=.]).{10,}$
规则说明
^匹配字符串起始位置(?=.*[A-Z])确保密码包含至少一个大写字母(?=.*[a-z])确保密码包含至少一个小写字母(?=.*[!@#$%^&*()_+=.])确保密码包含至少一个指定范围内的特殊字符.{10,}匹配任意字符(不含换行)至少10次,满足密码长度要求$匹配字符串结束位置
用这个正则测试「Lollypop56@」会返回true,完全符合你的需求。
内容的提问来源于stack exchange,提问作者jhindianajones
相关产品推荐
相关产品推荐

