From c514b85def1c622931ac561d1f1b29bd04baa3e5 Mon Sep 17 00:00:00 2001 From: duandazhi Date: Fri, 21 Oct 2022 13:56:15 +0800 Subject: [PATCH] =?UTF-8?q?isValidCard18:=20=E5=A2=9E=E5=8A=A0null?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/util/IdcardUtil.java | 7 +++++-- .../src/test/java/cn/hutool/core/util/IdcardUtilTest.java | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) 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 99f3137b65..eef84ac735 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 @@ -271,7 +271,7 @@ public class IdcardUtil { * @since 5.5.7 */ public static boolean isValidCard18(String idcard, boolean ignoreCase) { - if (CHINA_ID_MAX_LENGTH != idcard.length()) { + if (StrUtil.isBlank(idcard) || CHINA_ID_MAX_LENGTH != idcard.length()) { return false; } @@ -304,7 +304,7 @@ public class IdcardUtil { * @return 是否合法 */ public static boolean isValidCard15(String idcard) { - if (CHINA_ID_MIN_LENGTH != idcard.length()) { + if (StrUtil.isBlank(idcard) || CHINA_ID_MIN_LENGTH != idcard.length()) { return false; } if (ReUtil.isMatch(PatternPool.NUMBERS, idcard)) { @@ -407,6 +407,9 @@ public class IdcardUtil { * @return 验证码是否符合 */ public static boolean isValidHKCard(String idcard) { + if (StrUtil.isBlank(idcard)) { + return false; + } String card = idcard.replaceAll("[()]", ""); int sum; if (card.length() == 9) { 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 2e38992f7c..aa6a3a8b5b 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 @@ -127,6 +127,10 @@ public class IdcardUtilTest { // 台湾人在大陆身份证 isValidCard18 = IdcardUtil.isValidCard18("830000200209060065"); Assert.assertTrue(isValidCard18); + + // 身份证允许调用为空null + isValidCard18 = !IdcardUtil.isValidCard18(null); + Assert.assertTrue(isValidCard18); } @Test -- Gitee