使用正则表达式设置强密码

文章目录

例子和解析

强密码需要同时含有大写字母、小写字母、数字、特殊符号。

这边先展示我自己写的。

javascript 复制代码
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%?])[a-zA-Z0-9!@#$%?_]{8,}$

以上代8位以上的强密码。

下面是具体解析:

java 复制代码
^代表开始
$代表结尾
(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%?])这四个是对字符进行判定
(?=.*[a-z])判断小写字母是否存在
(?=.*[a-z])判断大写字母是否存在
(?=.*[0-9])判断数字是否存在
(?=.*[!@#$%?])判断特殊字符是否存在,特殊字符可以自行添加
[a-zA-Z0-9!@#$%?_]{8,}代表要从[]内的字符中任取一个,共8位
[]是取一个    ()是都要满足    {}是取几位
最小位数必填,最大位数可不填,我的例子里只有最小位数为8

测试工具

正则表达式测试工具里可以自行检测写的对不对

Java中的应用

目前较为简便的一种使用方法是搭配ApiModel和Pattern对变量进行配置。

java 复制代码
@ApiModel(value="User" description="用户对象")
public class User{
	@Pattern(regexp = "^(?=.*[A-Za-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%?])[a-zA-Z0-9!@#$%?_]{8,}$")
	private String pwd;
}
相关推荐
踏着七彩祥云的小丑11 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
bosins13 小时前
密码复杂度验证正则表达式
正则表达式
小森林之主17 小时前
正则表达式零宽断言实战:凌晨3点的服务器报警
python·正则表达式·零宽断言·服务器报警·正则速查
小森林之主1 天前
Python re 模块速查:从实战对比中掌握正则表达式
python·正则表达式·性能测试·re模块·编程实战
程序猿零零漆2 天前
Python进阶之路:正则表达式、高级语法与核心数据结构(链表、二叉树)全解析
数据结构·python·正则表达式
2301_781833523 天前
Python 正则表达式入门教程
开发语言·python·正则表达式
五阿哥永琪4 天前
正则表达式
数据库·mysql·正则表达式
小森林之主4 天前
深入正则表达式:核心语法与实战剖析
javascript·python·正则表达式·编程技巧·字符串处理
小森林之主4 天前
JavaScript 正则表达式:从零开始的实战对比
javascript·正则表达式·前端开发·性能对比·文本处理
不吃土豆的马铃薯4 天前
C++ 正则表达式入门详解
linux·服务器·网络·数据库·c++·正则表达式