You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求符合放宽后密码规则的合并式正则表达式解决方案

密码安全校验正则表达式(降安全等级版)

最终合并后的正则表达式

^(?=(?:(?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-z])(?=.*[^a-zA-Z0-9])|(?=.*\d)(?=.*[A-Z])(?=.*[^a-zA-Z0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])))[\S]{9,20}$

规则拆解

  • 边界控制:^ 和 $ 确保校验覆盖整个密码字符串,避免部分匹配
  • 多类字符断言:外层的 (?=...) 是正向预查,内部包含4个分支,分别对应所有符合「至少3类字符」的场景:
    • 分支1:(?=.*\d)(?=.*[a-z])(?=.*[A-Z]) → 包含数字、小写字母、大写字母(无特殊字符)
    • 分支2:(?=.*\d)(?=.*[a-z])(?=.*[^a-zA-Z0-9]) → 包含数字、小写字母、特殊字符(无大写字母)
    • 分支3:(?=.*\d)(?=.*[A-Z])(?=.*[^a-zA-Z0-9]) → 包含数字、大写字母、特殊字符(无小写字母)
    • 分支4:(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]) → 包含小写字母、大写字母、特殊字符(无数字)
  • 长度与空格控制:[\S]{9,20} 直接匹配9-20个非空格字符,同时满足长度要求和无空格限制

补充说明

这个正则延续了你最初的断言式写法,把所有符合要求的场景通过预查分支整合,一次校验即可覆盖所有规则,无需拆分多个表达式。

内容的提问来源于stack exchange,提问作者mammoth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:14:59