fix provience bug

This commit is contained in:
Looly 2021-06-24 22:01:01 +08:00
parent 36dcc17390
commit 968d18db10
2 changed files with 20 additions and 5 deletions

View File

@ -12,6 +12,7 @@
### 🐞Bug修复
* 【json 】 修复XML转义字符的问题issue#I3XH09@Gitee
* 【core 】 修复FormatCache中循环引用异常pr#1673@Github
* 【core 】 修复IdcardUtil.getIdcardInfo.getProvinceCode获取为汉字的问题issue#I3XP4Q@Gitee
-------------------------------------------------------------------------------------------------------------

View File

@ -532,6 +532,21 @@ public class IdcardUtil {
return (sCardChar % 2 != 0) ? 1 : 0;
}
/**
* 根据身份编号获取户籍省份编码只支持15或18位身份证号码
*
* @param idcard 身份编码
* @return 省份编码
* @since 5.7.2
*/
public static String getProvinceCodeByIdCard(String idcard) {
int len = idcard.length();
if (len == CHINA_ID_MIN_LENGTH || len == CHINA_ID_MAX_LENGTH) {
return idcard.substring(0, 2);
}
return null;
}
/**
* 根据身份编号获取户籍省份只支持15或18位身份证号码
*
@ -539,10 +554,9 @@ public class IdcardUtil {
* @return 省份名称
*/
public static String getProvinceByIdCard(String idcard) {
int len = idcard.length();
if (len == CHINA_ID_MIN_LENGTH || len == CHINA_ID_MAX_LENGTH) {
String sProvinNum = idcard.substring(0, 2);
return CITY_CODES.get(sProvinNum);
final String code = getProvinceCodeByIdCard(idcard);
if(StrUtil.isNotBlank(code)){
return CITY_CODES.get(code);
}
return null;
}
@ -672,7 +686,7 @@ public class IdcardUtil {
* @param idcard 身份证号码
*/
public Idcard(String idcard) {
this.provinceCode = IdcardUtil.getProvinceByIdCard(idcard);
this.provinceCode = IdcardUtil.getProvinceCodeByIdCard(idcard);
this.cityCode = IdcardUtil.getCityCodeByIdCard(idcard);
this.birthDate = IdcardUtil.getBirthDate(idcard);
this.gender = IdcardUtil.getGenderByIdCard(idcard);