/** * 關鍵信息屏蔽,屏蔽郵箱和電話 * @param content * @return */ public static String senstiveContent(String content,String type){ // 內容爲null返回空 if(content == null){ return ""; } String replacedStr = "";// 替換後的字符串 String pattern = ""; // 正則表達式 if(type.equals(CommonConst.SENSTIVE_TYPE_EMAIL)){ // 對email@符號前的長度進行判斷若是少於2個字符則保留一位明文 String emailPattern = "\\S+@\\S+\\.\\S+"; // 構造Pattern對象 Pattern p = Pattern.compile(emailPattern); // 建立Matcher對象 Matcher matcher = p.matcher(content); String patternStr = "";// 匹配的字符串 if(matcher.find()){ patternStr = matcher.group(); } // 判斷@符號的位置 int index = patternStr.indexOf("@"); if(index == -1){ return content; } if(index < 2 ){ // 保留一位明文 pattern = "(\\S){1}\\S+(@\\S+)"; }else{ // 保留開頭2位明文和最後一位明文 pattern = "(\\S){2}\\S+(\\S{1}@\\S+)"; } // 替換 replacedStr = content.replaceAll(pattern,"$1****$2"); } if(type.equals(CommonConst.SENSTIVE_TYPE_PHONE)){ // 存在國際電話。規則:5位以上的連續字符即認定爲電話號碼 pattern = "([0-9]{4})([0-9]+)"; // 替換 replacedStr = content.replaceAll(pattern,"$1****"); } return replacedStr; }