java 手机号 邮箱 身份证 信息脱敏 您所在的位置:网站首页 手机号脱敏显示 java 手机号 邮箱 身份证 信息脱敏

java 手机号 邮箱 身份证 信息脱敏

2023-10-27 23:37| 来源: 网络整理| 查看: 265

需求 邮箱第一个字符和’@‘之后的原文显示,第一个字符之后’@‘之前的,显示为’****’电话号码,前面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 实验室设备网 版权所有