正则表达式- 身份证号

package com.imut.day13;

/**
 * @author djs
 * @create 2022-12-08 15:28
 */
public class Test10 {

    public static void main(String[] args) {
        /**
         * 身份证号的严格校验
         *
         * 如身份证号:
         * 410801 1998 02 10 457x
         * 前6位:省份,市区,派出所信息 。注意:第一位不能是0,后5位任意。 [1-9]\\d{5}
         * 年的前半段 这里只算到1800-2099年  18,19,20                    (18|19|20)
         * 年的后半段  任意数字出现两次                                  \\d{2}
         * 月份 01~09 10 11 12                                        (0[1-9]|1[0-2])
         * 日期: 01~09 10~19 20~29 30 31    (最好2月份没有29)         (0[1-9]|[12]\\d|3[01])
         * 后面4位  任意数字出现3次  最后一位可能是数字,也可能是x或X
         * \\d{3}[\\dXx]
         *
         *
         */

        String rex = "[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";

        String code = "14181320981213301X";

        boolean matches = code.matches(rex);

        System.out.println("matches = " + matches);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值