IdcardUtil验证10位身份证兼容中英文括号(issue#IBP6T1@Gitee)

This commit is contained in:
Looly
2025-02-27 08:34:33 +08:00
parent 1aec0973f8
commit bd94c09e91
3 changed files with 20 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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("16082141")[2]);
}
}