From bd94c09e91c9c556a7c9f34b9284e776f1d4ffb6 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 27 Feb 2025 08:34:33 +0800 Subject: [PATCH] =?UTF-8?q?`IdcardUtil`=E9=AA=8C=E8=AF=8110=E4=BD=8D?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=85=BC=E5=AE=B9=E4=B8=AD=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E6=8B=AC=E5=8F=B7=EF=BC=88issue#IBP6T1@Gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- .../main/java/cn/hutool/core/util/IdcardUtil.java | 5 +++++ .../java/cn/hutool/core/util/IssueIBP6T1Test.java | 13 +++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 hutool-core/src/test/java/cn/hutool/core/util/IssueIBP6T1Test.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 5db9d4c3b..255ab2027 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,12 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.37(2025-02-24) +# 5.8.37(2025-02-27) ### 🐣新特性 * 【json 】 ObjectMapper删除重复trim(pr#3859@Github) * 【core 】 `FileWriter`增加方法,可选是否追加换行符(issue#3858@Github) +* 【core 】 `IdcardUtil`验证10位身份证兼容中英文括号(issue#IBP6T1@Gitee) ### 🐞Bug修复 * 【setting】 修复`SettingLoader`load未抛出异常导致配置文件无法正常遍历的问题(pr#3868@Github) 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 449983ae0..3fd2677ad 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/IdcardUtil.java @@ -340,6 +340,11 @@ public class IdcardUtil { if (StrUtil.isBlank(idcard)) { return null; } + + // issue#IBP6T1 中文空格替换为英文 + idcard = StrUtil.replace(idcard, "(", "("); + idcard = StrUtil.replace(idcard, ")", ")"); + String[] info = new String[3]; String card = idcard.replaceAll("[()]", ""); if (card.length() != 8 && card.length() != 9 && idcard.length() != 10) { diff --git a/hutool-core/src/test/java/cn/hutool/core/util/IssueIBP6T1Test.java b/hutool-core/src/test/java/cn/hutool/core/util/IssueIBP6T1Test.java new file mode 100644 index 000000000..0583475f3 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/util/IssueIBP6T1Test.java @@ -0,0 +1,13 @@ +package cn.hutool.core.util; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class IssueIBP6T1Test { + @SuppressWarnings("DataFlowIssue") + @Test + void isValidCard10Test(){ + Assertions.assertEquals("true", IdcardUtil.isValidCard10("1608214(1)")[2]); + Assertions.assertEquals("true", IdcardUtil.isValidCard10("1608214(1)")[2]); + } +}