This commit is contained in:
Looly
2024-03-29 11:58:47 +08:00
parent 69b3138b1b
commit d41a22a458
3 changed files with 17 additions and 5 deletions

View File

@@ -317,8 +317,8 @@ public class CIN {
return false;
}
// 省份
final String proCode = idCard.substring(0, 2);
// 截取省份代码。新版外国人永久居留身份证以9开头第二三位是受理地代码
final String proCode = StrUtil.startWith(idCard, '9') ? idCard.substring(1, 3): idCard.substring(0, 2);
if (null == CITY_CODES.get(proCode)) {
return false;
}

View File

@@ -164,4 +164,17 @@ public class IdcardUtilTest {
flag = IdcardUtil.isValidTWCard(errTwCard2);
Assertions.assertFalse(flag);
}
@Test
void foreignTest() {
// 新版外国人永久居留身份证号码
final String FOREIGN_ID_18 = "932682198501010017";
Assertions.assertTrue(IdcardUtil.isValidCard(FOREIGN_ID_18));
final DateTime date = DateUtil.parse("2017-04-10");
Assertions.assertEquals(IdcardUtil.getAge(FOREIGN_ID_18, date), 32);
// 新版外国人永久居留身份证
Assertions.assertTrue(IdcardUtil.isValidCard18("932682198501010017"));
}
}