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


不只是身份证号中间加星号,手机号中间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");
  }
}

声明:目的地-Destination|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Java把身份证号中间打星号(身份证号码加*)


前程似锦、未来可期、寻得良人、共赴白头,祝你也祝我。