個人信息打碼
阿新 • • 發佈:2018-08-20
repl spl ++ contains mes package 電話 col []
package com; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { //個人信息打碼 private static 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{ returnnumber; } } private static 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; } /** * @param args */ public static void main(String[] args) { System.out.println(getEncrypt("411421995412541201")); System.out.println(getEncrypt("13595245120")); System.out.println(getEncryptName("張三")); } }
結果:
個人信息打碼