Java把身份证号中间打星号(身份证号码加*)

2022年12月13日 1888 0 Web端 发布

不只是身份证号中间加星号,手机号中间4位加星同样也可以。

运行结果

idMask("620101354985441562", 6, 4);
620101********1562

idMask("13000001234", 3, 4);
130****1234

完整Demo

public class IdMask {
  /**
   * 用户身份证号码的打码隐藏加星号加* 18位和非18位身份证处理均可成功处理 参数异常返回null
   *
   * @param idCardNum 身份证号码
   * @param front     需要显示前几位
   * @param end       需要显示末几位
   * @return 处理完成的身份证
   */
  public static String mask(String idCardNum, int front, int end) {
    // 身份证不能为空
    if (StringUtil.isEmpty(idCardNum)) {
      return null;
    }
    // 需要截取的长度不能大于身份证号长度
    if ((front + end) > idCardNum.length()) {
      return null;
    }
    // 需要截取的不能小于0

    if (front < 0 || end < 0) {
      return null;
    }
    // 计算*的数量
    int asteriskCount = idCardNum.length() - (front + end);
    StringBuffer asteriskStr = new StringBuffer();
    for (int i = 0; i < asteriskCount; i++) {
      asteriskStr.append("*");
    }
    String regex = "(\\w{" + String.valueOf(front) + "})(\\w+)(\\w{" + String.valueOf(end) + "})";
    return idCardNum.replaceAll(regex, "$1" + asteriskStr + "$3");
  }
}
工作Java开发工程师身份证打码手机号打码身份证加星
手机号加星

相关文章

在java中,什么情况下要使用深拷贝?为什么要使用深拷贝?怎么使用深拷贝?
实现MySQL数据库主主同步(自动互相同步数据)
Typecho 给评论增加点赞/喜欢功能

评论(0)

暂无

发布评论