个人信息 手机号、身份证 姓名脱敏加密打码替换*
//个人信息 手机号或证件号打码 private String getEncrypt(String number){ //电话 if (number != null && number.length() == 11) { return number.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); } //身份证号码 if (number != null && number.length() == 18) { return number.replaceAll("(\\d{4})\\d{12}(\\w{2})","$1************$2"); } else if(number != null && number.length() == 15){ return number.replaceAll("(\\d{4})\\d{9}(\\w{2})","$1*********$2"); }else{ return number; } } //名字打码 private String getEncryptName(String name){ String regex = "[\\u4E00-\\u9FA5]{2,30}(?:·[\\u4E00-\\u9FA5]{2,5})*"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(name); boolean isMatch = m.matches(); StringBuilder sb = new StringBuilder(); String names=""; if (isMatch) {//说明是中文姓名 if (name.contains("·")) { String[] strNames = name.split("·"); for (int i = 0; i < strNames.length-1; i++) { if (i!=strNames.length) { names = strNames[i].replaceAll("[\\u4e00-\\u9fa5]", "*"); } sb.append(names).append("·"); } return sb.append(strNames[strNames.length-1]).toString(); } else { String[] strNames = name.split(""); sb.append(strNames[1]); for (int i = 2; i < strNames.length; i++) { names = strNames[i].replaceAll("[\\u4e00-\\u9fa5]", "*"); sb.append(names); } return sb.toString(); } } else {//说明是英文 if (name.contains(" ")) { String[] strNames = name.split(" "); for (int i = 0; i < strNames.length-1; i++) { if (i!=strNames.length) { names = strNames[i].replaceAll("^[A-Za-z]+$", "*"); } sb.append(names).append(" "); } return sb.append(strNames[strNames.length-1]).toString(); } } return name; }