首页 > 基础资料 博客日记

java 校验身份证 正则

2024-07-06 20:00:10基础资料围观605

文章java 校验身份证 正则分享给大家,欢迎收藏Java资料网,专注分享技术知识

当我国实行身份证制度时,最初使用的是15位身份证号码。这个号码包括了6位地址码、6位出生日期码和3位顺序码。然而,随着社会发展和信息技术的进步,这种身份证号码逐渐显露出一些不足之处,比如容易重复、容易伪造等。因此,1999年起,中国开始颁发18位身份证号码,以取代15位身份证号码。

18位身份证号码在15位身份证号码的基础上增加了两位校验码,用于提高身份证号码的唯一性和防伪性。这两位校验码是根据前面17位的数据通过特定的算法计算得出的,以确保身份证号码的有效性和唯一性。这种改变使得身份证号码更加安全、准确,也更符合现代社会对于身份验证和信息管理的需求。

除了增加校验码外,18位身份证号码还可以提供更多的信息。例如,通过前6位地址码可以确定持证人的户籍所在地,而通过6位出生日期码可以确定持证人的出生年月日。这使得18位身份证号码在信息管理和数据统计方面更具优势。

总的来说,15位身份证号码是早期使用的身份证号码,而18位身份证号码则是在其基础上增加了校验码,提高了安全性和准确性,符合现代社会的需求

//18位
String id_18="^[1-9][0-9]{5}(18|19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}([0-9]|(X|x))";
//15位
String id_15="^[1-9][0-9]{5}[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{2}[0-9]";
public static void main(String[] args) {

String id_18="^[1-9][0-9]{5}(18|19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}([0-9]|(X|x))";

String id_15="^[1-9][0-9]{5}[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{2}[0-9]";

String id_valid="("+id_18+")"+"|"+"("+id_15+")";

Pattern pattern =Pattern.compile(id_valid);

Matcher matcher =pattern.matcher("身份证号18/15位");

System.out.println(matcher.matches());

}


文章来源:https://blog.csdn.net/aaa134529/article/details/138275089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云