美文网首页
Java身份证号码的打码隐藏(加*)

Java身份证号码的打码隐藏(加*)

作者: Hellen老师 | 来源:发表于2018-01-11 17:49 被阅读0次
    /**
     * 用户身份证号码的打码隐藏加星号加*
     * <p>18位和非18位身份证处理均可成功处理</p>
     * <p>参数异常直接返回null</p>
     *
     * @param idCardNum 身份证号码
     * @param front     需要显示前几位
     * @param end       需要显示末几位
     * @return 处理完成的身份证
     */
    public static String idMask(String idCardNum, int front, int end) {
        //身份证不能为空
        if (TextUtils.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");
    }

测试用例:

idMask("310181198002280637", 6, 4);
310181********0637
idMask("31018119800228", 6, 4);
310181****0228
idMask("310181198002280637", 0, 4);
**************0637
idMask("310181198002280637", 18, 4);
null
idMask("310181198002280637", -1, 4);
null

相关文章

  • Java身份证号码的打码隐藏(加*)

    测试用例:

  • L1-016. 查验身份证(巧妙减少switch语句)

    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加...

  • 1031 查验身份证 (15分)(Python)

    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加...

  • 1031 查验身份证

    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加...

  • 字符串脱敏

    身份证号码隐藏 手机号脱敏处理

  • 2022-01-29

    我国居民身份证号码由四部分组成,从前往后分别是地址码、生日期码、顺序码和校验码。 1. 地址码 (身份证号码前六位...

  • PAT (Basic Level):1031 查验身份证(15)

    题目信息 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17...

  • 2018-10-23查验身份证(15)

    题目描述 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17...

  • L1-016 查验身份证

    题目描述 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前1...

  • PTA 1031 查验身份证 (15 分)

    题目 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位...

网友评论

      本文标题:Java身份证号码的打码隐藏(加*)

      本文链接:https://www.haomeiwen.com/subject/oxstoxtx.html