java 手机号 邮箱 身份证 信息脱敏 | 您所在的位置:网站首页 › 手机号脱敏显示 › java 手机号 邮箱 身份证 信息脱敏 |
需求
邮箱第一个字符和’@‘之后的原文显示,第一个字符之后’@‘之前的,显示为’****’电话号码,前面3位,后面4位显示原文,中间的显示为’****’
实现
public static void main(String[] args) {
String email = "[email protected]";
System.out.println("原邮箱: " + email);
email = email.replaceAll("(^\\w)[^@]*(@.*$)", "$1****$2");
System.out.println("脱敏后: " + email);
System.out.println("---------------------------");
String phone = "13488889999";
System.out.println("原电话: " + phone);
phone = phone.replaceAll("([1][3-9]\\d{1})\\d{4}(\\d{4})", "$1****$2");
System.out.println("脱敏后: " + phone);
}
# 结果
"C:\Program Files\Java\jdk1.8.0_144\bin\java" ...
原邮箱: [email protected]
脱敏后: z****@163.com
---------------------------
原电话: 13488889999
脱敏后: 134****9999
正则解释: ^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 \将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 \w匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。 [xyz]字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 *匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 $匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 \d匹配一个数字字符。等价于 [0-9]。 {n}n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 $1,$2表达的是小括号里面的内容 $1是第一个小括号里的内容,$2是第二个小括号里面的内容,依此类推 比如 (\\d{4})(\\d{2})(\\d{2}) 匹配"20190919" $1是第一个括号里匹配的2019 $2是第二个括号里匹配的09 $3是第三个括号里匹配的19 //身份证前三后四脱敏 public static String idEncrypt(String id) { if (StringUtils.isEmpty(id) || (id.length() < 8)) { return id; } return id.replaceAll("(? |
CopyRight 2018-2019 实验室设备网 版权所有 |