对信息的处理

直接上代码


import java.util.regex.Matcher;
import java.util.regex.Pattern;

/** 
*   安全显示用户的信息
 * @author:   
 * @date: 2021/10/24
 * @description:
 */
public class DataVerifyUtil {

    //手机号
    private static final String phoneRule = "^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$";
    //固定号码
    private static final String fixedRule = "^(010|02\\d|0[3-9]\\d{2})?\\d{6,8}$";
    //邮箱
    private static final String emailRule = "(\\w{3,10}\\.)*\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
    //微信
    private static final String weChatRule = "^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}+$";
    //  qq
    private static final String QQRule = "^[1-9][0-9]{4,14}";

    private static final String SYMBOL = "*";

    /**
     *  客户编号安全显示
     * @param number
     * @return
     */
    public static String serialNumber(String number){

        StringBuilder stringBuilder = new StringBuilder();
        if (!number.trim().isEmpty()) {
            stringBuilder.append(number.substring(0, 3));
            int len = number.trim().length();
            for (int i = 0; i < len - 6; i++) {
                stringBuilder.append(SYMBOL);
            }
            stringBuilder.append(number.substring(len - 3, len));
        }
        return stringBuilder.toString();
    }

    /**
     * 客户姓名信息安全显示
     *
     * @param name
     * @return
     */
    public static String customerName(String name) {

        StringBuilder sb = new StringBuilder();
        int len = name.trim().length();
        if (len!=0) {
            if (len <= 3) {
                //隐藏第一个字
                sb.append(SYMBOL).append(name.substring(1, len));
            } else if (len >= 3 && len < 6) {
                //隐藏前两个字
                sb.append(SYMBOL).append(SYMBOL).append(name.substring(2, len));
            } else if (len >= 6) {
                // 隐藏第3到第6个字
                //获取前两位
                String substring = name.substring(0, 2);
                sb.append(substring);
                //3-6 有4位
                for (int i = 0; i < 4; i++) {
                    sb.append(SYMBOL);
                }
                sb.append(name.substring(6, len));
            }
        }
        return sb.toString();
    }

    /**
     * 手机号安全显示
     *
     * @param phone 手机号
     * @return
     */
    public static String phoneSecurityDisplay(String phone) {

        //验证手机号的合法
        boolean b = DataVerifyUtil.phoneNumberVerify(phone);
        StringBuilder stringBuilder = new StringBuilder();
        if (b) {
            stringBuilder.append(phone.substring(0, 3));
            int len = phone.trim().length();
            for (int i = 0; i < len - 6; i++) {
                stringBuilder.append(SYMBOL);
            }
            stringBuilder.append(phone.substring(len- 3, len));
        } else {
            return stringBuilder.append("手机号不合法!!!").toString();
        }
        return stringBuilder.toString();
    }

    /**
     * 固定号码安全显示
     *
     * @param fixed 固定号码
     * @return
     */
    public static String fixedSecurityDisplay(String fixed) {

        StringBuilder stringBuilder = new StringBuilder();
        //验证
        boolean b = DataVerifyUtil.fixedNumberVerify(fixed);
        int len = fixed.trim().length();
        if (b) {
            Matcher match = DataVerifyUtil.match(fixedRule, fixed);
            if (match.find()) {
                //获取前3
                String areaCode = match.group(1);
                stringBuilder.append(areaCode);
                for (int i = 0; i < len - 6; i++) {
                    stringBuilder.append(SYMBOL);
                }
                //获取后三位
                stringBuilder.append(fixed.trim().substring(len - 3, len));
            }
        } else {
            return stringBuilder.append("固定号码不合法!!!").toString();
        }
        return stringBuilder.toString();
    }



    /**
     * qq 安全显示
     *
     * @param QQ
     * @return
     */
    public static String QQVerifySecurityDisplay(String QQ) {

        StringBuilder stringBuilder = new StringBuilder();
        int len = QQ.trim().length();
        //匹配qq
        boolean b = DataVerifyUtil.QQVerify(QQ);

        // 匹配前两个
        String s = ".{0,2}";
        Matcher match = DataVerifyUtil.match(s, QQ);
        if(b) {
            if (match.find()) {
                //获取前2位
                String areaCode = match.group();
                stringBuilder.append(areaCode);
                for (int i = 0; i < len - 3; i++) {
                    stringBuilder.append(SYMBOL);
                }
                //获取后一位
                stringBuilder.append(QQ.trim().substring(len - 1, len));
            }
        }else {
            return stringBuilder.append("QQ号不合法!!!").toString();
        }
        return stringBuilder.toString();
    }


    /**
     * 验证码手机号合法
     *
     * @param phone 手机号
     * @return boolean
     */
    public static boolean phoneNumberVerify(String phone) {

        return DataVerifyUtil.match(phoneRule, phone).matches();
    }

    /**
     * 验证固定号的合法
     *
     * @param fixed 固定号码
     * @return
     */
    public static boolean fixedNumberVerify(String fixed) {

        return DataVerifyUtil.match(fixedRule, fixed).matches();
    }

    /**
     * 验证邮箱的合法
     *
     * @param email
     * @return
     */
    public static boolean emailVerify(String email) {

        return DataVerifyUtil.match(emailRule, email).matches();
    }

    /**
     * 验证微信 的合法
     *
     * @param weChatQQ
     * @return
     */
    public static boolean weChatVerify(String weChatQQ) {

        return DataVerifyUtil.match(weChatRule, weChatQQ).matches();
    }

    /**
     * 验证 QQ的合法
     *
     * @param QQ
     * @return
     */
    public static boolean QQVerify(String QQ) {
        return DataVerifyUtil.match(QQRule, QQ).matches();
    }

    /**
     * 通用匹配
     *
     * @param rule  规则
     * @param value 信息
     * @return
     */
    public static Matcher match(String rule, String value) {
        Pattern pattern = Pattern.compile(rule);
        return pattern.matcher(value);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值