java正则校验,密码必须由字母和数字组成
时间:2022-05-03
本文章向大家介绍java正则校验,密码必须由字母和数字组成,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一个匹配数字和字母密码的正则表达式
2011 年 12 月 14 日 | Filed under: 正则表达式 and tagged with: 密码 , 正则表达式 , 零宽断言
一个用户注册功能的密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。
如何分析需求?拆分!这就是软件设计的一般思路了。于是乎,拆分需求如下: 1,不能全部是数字 2,不能全部是字母 3,必须是数字或字母 只要能同时满足上面3个要求就可以了,写出来如下:
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
分开来注释一下: ^ 匹配一行的开头位置 (?![0-9]+$) 预测该位置后面不全是数字 (?![a-zA-Z]+$) 预测该位置后面不全是字母 [0-9A-Za-z] {8,16} 由8-16位数字或这字母组成 $ 匹配行结尾位置
注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。
测试用例如下:
public class Test {
public static void main(String[] args) throws Exception {
String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";
String value = "aaa"; // 长度不够
System.out.println(value.matches(regex));
value = "1111aaaa1111aaaaa"; // 太长
System.out.println(value.matches(regex));
value = "111111111"; // 纯数字
System.out.println(value.matches(regex));
value = "aaaaaaaaa"; // 纯字母
System.out.println(value.matches(regex));
value = "####@@@@#"; // 特殊字符
System.out.println(value.matches(regex));
value = "1111aaaa"; // 数字字母组合
System.out.println(value.matches(regex));
value = "aaaa1111"; // 数字字母组合
System.out.println(value.matches(regex));
value = "aa1111aa"; // 数字字母组合
System.out.println(value.matches(regex));
value = "11aaaa11"; // 数字字母组合
System.out.println(value.matches(regex));
value = "aa11aa11"; // 数字字母组合
System.out.println(value.matches(regex));
}
}
- [CORS:跨域资源共享] W3C的CORS Specification
- 通过扩展让ASP.NET Web API支持JSONP
- ASP.NET Web API自身对CORS的支持:从实例开始
- Generator:化异步为同步
- 超详细的大数据学习资源推荐(下)
- 中国大数据行业发展现状及趋势预测
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构 · 负载均衡的几种类型
- 常用的Hadoop 文件查看工具
- 机器学习之——LINE及LargeVis可视化算法
- 开发人员看测试之细说JBehave
- 智能合约中存在的3种最常见的误解
- O'ReillyAI系列:将学习速率可视化来优化神经网络
- 再下一城,腾讯黑科技介入新零售
- 微信团队广发内部体验邀请,小程序将大火!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- [::-1] 数组中元素反向
- MySQL面试题
- numpy~运算符和Boolean类型变量
- PHP安全基础第一章
- 21 个非常有用的 .htaccess 提示和技巧
- PHP实现图片马赛克效果
- PHP中的类
- PHP获取表单textarea数据中的换行问题
- Numpy根据Bool值挑选数组中元素
- MySQL获取每个分类下面的前三条数据
- windows宿主机如何SSH连接VMware的Linux虚拟机
- np.random.rand均匀分布随机数和np.random.randn正态分布随机数函数使用方法
- Java FileReader使用相对路径读取文件
- MySQL批量插入数据库实现语句性能分析
- np.repeat用法