/** * 手机号用****号隐藏中间数字 * * @param str 手机号码 * @return */ public static String settingphone(String str) { String phone = str.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); return phone; } /** * 邮箱用****号隐藏前面的字母 * * @param email 邮箱账号 * @return */ public static String settingemail(String email) { String emails = email.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4"); return emails; } /** * 身份证号用****号隐藏前面的字母 * * @param idCard 身份证号 * @return */ public static String settingID(String idCard) { String idCardHide = idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})","$1*****$2"); return idCardHide;
}
解析:列入身份证号,通过正则表达式"(\\d{4})\\d{10}(\\w{4})"将身份证号(18位)分为三个部分,第一个部分为4个数就是前四位;第二部分为
10个数从第五位到第十四位;第三部分四个数就是身份证的后四位;而S1对应的是第一部分,S2对应的这是第三部分,****这是对应的第二部分;
也就是和中间要隐藏的10个数