身份证号码格式判断在日常开发工作中比较常见,而检验身份证号码格式是否正确的核心则在于正则表达式,很多的身份证号码格式校验代码都不太全面,或者说兼容性不太好。经过使用中检验和对正则表达式多次修复,现将校验代码分享给大家。多的不说,直接上代码!
1、定义正则表达式常量类
/**
* 身份证号码正则表达式
*/
private static final String ID_NUMBER_REGEX = "[1-9]{1}[0-9]{5}(19|20)[0-9]{2}((0[1-9]{1})|(1[0-2]{1}))((0[1-9]{1})|([1-2]{1}[0-9]{1}|(3[0-1]{1})))[0-9]{3}[0-9x]{1}";
2、声明身份证正则表达式校验模式
/**
* 身份证正则模板
*/
private static final Pattern ID_NUMBER_PATTERN = Pattern.compile(ID_NUMBER_REGEX);
3、校验代码实现
/**
* 验证身份证号是否正确,正确返回true,否则返回false
* @param idNumber
* @return
*/
public static boolean isIdNumber(String idNumber) {
if (isEmpty(idNumber)) {
return false;
}
/**
* HuangLongPu 2019-11-01 >>> 之前为 [1-9]{2}[0-9]{4},改为 [1-9]{1}[0-9]{5} 主要兼容比如 50开头的身份证号码
*/
return ID_NUMBER_PATTERN.matcher(idNumber).matches();
}
使用常量类和提前声明正则表达式校验模式,主要是为了运行效率考虑,也更符合编码规范。
更多业务场景校验程序可参考 Obatis开源项目 校验类:https://github.com/obatis/obatis-tools/blob/master/src/main/java/com/obatis/tools/ValidateTool.java
支持最新166、188、199号段的验证,同时支持165、172、174、191、195 等号段的验证。
看代码:思路如下:首先采用正则表达式将通配符变量抓取出来,再次使用替换函数(replace)替换为我们实际需要展示的信息即可。
说白了就是将之前提倡的 compare 比较表达式给替换了,改由 Comparator.源码参考: 在编码中,如果我们使用了 compare 比较表达式,即“(e1, e2) -> e1
很多博客都有写关于Java判断上传文件是否为图片的问题,搜索出来的绝大多数都是复制式的,千篇一律的都是根据后缀名来判断,这种方式是有很多缺陷的,如果我将一个文本文件的后缀名改为".
用 Java 程序实现乘法口诀(99乘法表),主要有两个要点需要掌握: 1、需要实现双层循环; 2、内循环的循环次数小于等于上层循环的循环次数; Java 代码如下(供参考): 循环内打印出口诀,采用条件表达式主要为判断乘积结果是否为两位数
这里感觉有点坑,如果启动类不加@EnableScheduling 注解,项目中也可以正常配置定时任务时间表达式,但不会执行,大意的开发者可能需要花费更多的调试时间和查询资料。
Elasticsearch 安装启动依托于Java 环境,首先得确保已正确安装了Java,并配置好环境变量,要求java 7或以上或最新的版本。
Java 开发工具包 (JDK) 18 将于 2022 年 3 月 22 日发布。JDK 18 新功能一览:指定 UTF-8 作为标准 Java API 的默认字符集。
1、解压 2、移动到 /usr/local 目录下 3、进入并查看Java Jdk 目录 4、配置Java环境变量 编辑/etc/profile 文件 如果提示 vim 命令未安装,执行 yum -y
从Java8开始,Java已经不在推荐使用Date作为时间、日期函数,为什么从Java8之后,推荐使用LocalDateTime、LocalDate,而为什么不再推荐使用Date了呢?
如果我们有需求需要将Java类的属性及值生成URL格式数据并且按照ASCII码排序,这种需求在项目中特别是和第三方系统进行对接的时候有使用场景。
在使用thymeleaf 模板引擎时,针对日期时间格式的数据,需要进行格式化显示。例如页面需要精确显示到分钟,时间的格式为:yyyy-MM-dd HH:mm。
Obatis 技术社区的文章链接为:/show/blog/detail/2020091000024181101172459033.Nginx 配置拓展资料: = 精准匹配,不是以指定模式开头 ~* 正则匹配
开发项目时,为了对参数进行安全、合法性校验,往往我们会通过大量的业务代码来进行,今天我们介绍通过注解的方式来实现对接口参数的校验。
Java开发过程中,我们会有数组与集合相互转换的情况,无论是数组还是集合,对于Java编程语言而言,都是比较常见的数据类型。下面通过程序的方式直观明了的讲解数组与集合的相互转换案例。
就拿参数校验来说,前端请求过来的参数合理性判断,好的办法就是定义一个实体类来封装请求参数,使用 @Valid 注解结合java validation、hibernate validation注解进行校验
Java 开发中,使用 XStream 将 xml 转为 Java 实体对象时,提示异常信息: 出现如上的异常信息,是因为没有设置权限级别导致,加上权限级别控制即可解决。