fix(IdCardUtil): Fix isValidTWCard string index out of range

This commit is contained in:
fuffcp123 2021-07-10 15:13:43 +08:00
parent 0e15b89cfa
commit 09355e6cc5
2 changed files with 15 additions and 2 deletions

View File

@ -343,7 +343,7 @@ public class IdcardUtil {
* @return 验证码是否符合 * @return 验证码是否符合
*/ */
public static boolean isValidTWCard(String idcard) { public static boolean isValidTWCard(String idcard) {
if (StrUtil.isEmpty(idcard)) { if (StrUtil.isEmpty(idcard) || idcard.length() != 10) {
return false; return false;
} }
String start = idcard.substring(0, 1); String start = idcard.substring(0, 1);

View File

@ -7,7 +7,7 @@ import org.junit.Test;
/** /**
* 身份证单元测试 * 身份证单元测试
* *
* @author Looly * @author Looly
* *
*/ */
@ -111,4 +111,17 @@ public class IdcardUtilTest {
boolean flag=IdcardUtil.isValidHKCard(hkCard); boolean flag=IdcardUtil.isValidHKCard(hkCard);
Assert.assertTrue(flag); Assert.assertTrue(flag);
} }
@Test
public void isValidTWCardIdTest() {
String twCard = "B221690311";
boolean flag = IdcardUtil.isValidTWCard(twCard);
Assert.assertTrue(flag);
String errTwCard1 = "M517086311";
flag = IdcardUtil.isValidTWCard(errTwCard1);
Assert.assertFalse(flag);
String errTwCard2 = "B2216903112";
flag = IdcardUtil.isValidTWCard(errTwCard2);
Assert.assertFalse(flag);
}
} }