public static String desIdCardForString(Object obj) {
String idCardStr = null;
try {
idCardStr = String.valueOf(obj);
Pattern p = Pattern.compile("(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)");//正则表达式
Matcher m = p.matcher(idCardStr);
String idCard = "";
while (m.find()) {
idCard = m.group(0);
}
idCardStr = idCardStr.replaceAll(idCard, idCard.replaceAll("(.{" + (idCard.length() < 12 ? 3 : 6) + "})(.*)(.{4})", "$1" + "****" + "$3"));
} catch (Exception e) {
logger.error("脱敏-含有身份证的字符串异常,IdCardStr:{}", idCardStr, e);
}
return idCardStr;
}