package com.yanzuoguang.util.sfz; import com.yanzuoguang.util.helper.StringHelper; import java.util.regex.Pattern; import static com.yanzuoguang.util.sfz.SfzHandle15.CHINA_ID_MIN_LENGTH; import static com.yanzuoguang.util.sfz.SfzHandle15.getBirthDateYear; import static com.yanzuoguang.util.sfz.SfzHandleUtil.cityCodes; /** * 2017年国外永居证处理 * * @author 颜佐光 */ public class SfzHandleEn2017 implements SfzHandle { public static final Pattern EN2017 = Pattern.compile("^[a-zA-Z]{3}\\d{12}$"); @Override public boolean validate(String idCard) { if (idCard.length() == CHINA_ID_MIN_LENGTH && EN2017.matcher(idCard).matches()) { return true; } return false; } @Override public String repair(String idCard) { return idCard; } @Override public String getGender(String idCard) { return StringHelper.EMPTY; } @Override public String getBirthday(String idCard) { String birthday = idCard.substring(7, 13); return getBirthDateYear(birthday) + birthday.substring(2,6); } @Override public String getCountry(String idCard) { return StringHelper.EMPTY; } @Override public String getAreaId(String idCard) { return idCard.substring(3, 5); } @Override public String getProvinceName(String idCard) { return cityCodes.get(this.getAreaId(idCard).substring(0, 2)); } }