//个人信息 手机号或证件号打码
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;
}