一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

一些常用的密码格式校验正则表达式实用指南

时间:2026-10-16 10:32:02 编辑:袖梨 来源:一聚教程网

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“一些常用的密码格式校验正则表达式”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

前言

在这个场景下,业务需调整各端密码的安全正则,但密码策略现在是各个业务系统用不同语言维护,不便于统一管理和升级。采用正则表达式维护密码是比较好的方法。下面列举一些常用的密码格式的正则表达式。

规则总览

密码复杂度口令复杂度要求
A类长度6位及以上
B类长度6位及以上,且不能出现3位及以上的连续数字或字母;
C类长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;
D类实际处理时,长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母;
E类长度8位及以上
F类长度8位及以上,且不能出现3位及以上的连续数字或字母;
G类长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;
H类落到代码里,长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母;
I类长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型;
J类结合项目来看,长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型,且不能出现3位及以上的连续数字或字母;
K类长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型;
L类实际处理时,长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型,且不能出现3位及以上的连续数字或字母;

密码规则

A类:长度6位及以上

^.{6,}$

B类:长度6位及以上,且不能出现3位及以上的连续数字或字母;

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])[a-z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])[A-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])[0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[_W])[_W]{6,}$

C类:长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$

D类:长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母;

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$

E类:长度8位及以上

^.{8,}$

F类:长度8位及以上,且不能出现3位及以上的连续数字或字母;

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])[a-z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])[A-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])[0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[_W])[_W]{8,}$

G类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$

H类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$

I类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$

J类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型,且不能出现3位及以上的连续数字或字母

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$

K类:长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$

L类:长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型,且不能出现3位及以上的连续数字或字母

^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$

其他类型,能够参考其他博客地址,比如 正则表达式 - 密码格式验证大全

理解这一步时,如需大小写字母,数字,特殊字符校验的其他规则,能够在下方留言。我有工具能够生成。

总结

从实现思路看,总的来说,正则表达式校验密码适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。

热门栏目