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

文章目录

例子和解析

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

这边先展示我自己写的。

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;
}
相关推荐
小白学大数据4 小时前
百科词条结构化抓取:Java 正则表达式与 XPath 解析对比
java·开发语言·爬虫·正则表达式
烛阴16 小时前
C# 正则表达式(5):前瞻/后顾(Lookaround)——零宽断言做“条件校验”和“精确提取”
前端·正则表达式·c#
想学后端的前端工程师1 天前
【正则表达式实战指南:从入门到精通】
正则表达式
智航GIS1 天前
8.13 正则表达式
数据库·mysql·正则表达式
上去我就QWER4 天前
你了解正则表达式中“?”的作用吗?
正则表达式
qq_317620314 天前
第09章-标准库与常用模块
正则表达式·标准库·collections模块·数据序列化·时间处理
玄同7656 天前
Python 异常捕获与处理:从基础语法到工程化实践的万字深度指南
开发语言·人工智能·python·自然语言处理·正则表达式·nlp·知识图谱
zhuzhihongNO16 天前
Java正则表达式持续更新
正则表达式·pattern.dotall·正则表达式贪婪模式·正则表达式惰性模式·java正则表达式
玄同7657 天前
Python 正则表达式:LLM 噪声语料的精准清洗
人工智能·python·自然语言处理·正则表达式·nlp·知识图谱·rag