From d5eabab63ea8e35c19dd707e39724828e610da79 Mon Sep 17 00:00:00 2001 From: duandazhi Date: Thu, 25 Nov 2021 16:59:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AF=B9=20=E6=B8=AF?= =?UTF-8?q?=E6=BE=B3=E5=8F=B0=20=E5=9C=A8=E5=A4=A7=E9=99=86=E8=BA=AB?= =?UTF-8?q?=E4=BB=BD=E8=AF=81=20=E7=9A=84=20=E6=96=87=E6=A1=A3=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=EF=BC=9B=20=E5=A4=A7=E9=99=86=E7=94=A8=E6=88=B7=20?= =?UTF-8?q?=E5=AF=B9=20810000=E3=80=81820000=E3=80=81830000=20=E5=BC=80?= =?UTF-8?q?=E9=80=9A=E7=9A=8418=E4=BD=8D=E8=BA=AB=E4=BB=BD=E8=AF=81=20?= =?UTF-8?q?=E5=BE=80=E5=BE=80=E6=AF=94=E8=BE=83=E9=99=8C=E7=94=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/util/IdcardUtil.java | 18 ++++++++++++++++++ .../cn/hutool/core/util/IdcardUtilTest.java | 12 ++++++++++++ 2 files changed, 30 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java index e7adc4a38..970de3ffc 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java @@ -202,6 +202,24 @@ public class IdcardUtil { *
  • 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2
  • * * +

    + *

      + *
    1. 香港人在大陆的身份证,【810000】开头;同样可以直接获取到 性别、出生日期
    2. + *
    3. 81000019980902013X: 文绎循 男 1998-09-02
    4. + *
    5. 810000201011210153: 辛烨 男 2010-11-21
    6. + *
    + *
      + *
    1. 澳门人在大陆的身份证,【820000】开头;同样可以直接获取到 性别、出生日期
    2. + *
    3. 820000200009100032: 黄敬杰 男 2000-09-10
    4. + *
    + *
      + *
    1. 台湾人在大陆的身份证,【830000】开头;同样可以直接获取到 性别、出生日期
    2. + *
    3. 830000200209060065: 王宜妃 女 2002-09-06
    4. + *
    5. 830000194609150010: 苏建文 男 1946-09-14
    6. + *
    7. 83000019810715006X: 刁婉琇 女 1981-07-15
    8. + *
    + *

    + * * @param idcard 待验证的身份证 * @return 是否有效的18位身份证,忽略x的大小写 */ diff --git a/hutool-core/src/test/java/cn/hutool/core/util/IdcardUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/IdcardUtilTest.java index 24f423fc0..b9cd747a2 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/IdcardUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/IdcardUtilTest.java @@ -103,6 +103,18 @@ public class IdcardUtilTest { Assert.assertTrue(isValidCard18); isValidCard18 = IdcardUtil.isValidCard18("33010219200403064X"); Assert.assertTrue(isValidCard18); + + // 香港人在大陆身份证 + isValidCard18 = IdcardUtil.isValidCard18("81000019980902013X"); + Assert.assertTrue(isValidCard18); + + // 澳门人在大陆身份证 + isValidCard18 = IdcardUtil.isValidCard18("820000200009100032"); + Assert.assertTrue(isValidCard18); + + // 台湾人在大陆身份证 + isValidCard18 = IdcardUtil.isValidCard18("830000200209060065"); + Assert.assertTrue(isValidCard18); } @Test