前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java把身份证号中间打星号(身份证号码加*)

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

作者头像
目的地-Destination
发布2023-03-06 16:25:45
2K0
发布2023-03-06 16:25:45
举报
文章被收录于专栏:目的地-Destination

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

运行结果

代码语言:javascript
复制
idMask("620101354985441562", 6, 4);
620101********1562

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

完整Demo

代码语言:javascript
复制
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");
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年12月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运行结果
  • 完整Demo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档