java 对于手机号码、邮箱、银行卡号脱敏一条龙服务

private static final Pattern MOBILE_PATTERN =
            Pattern.compile("^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|17[0-9]{9}$|18[0-9]{9}$|19[0-9]{9}$");
private static Pattern isNumericPattern = Pattern.compile("^[-\\+]?[\\d]*$");
public static boolean isMobile(String number) { return MOBILE_PATTERN.matcher(number).matches(); }
public static boolean isNumeric(String str) {
return isNumericPattern.matcher(str).matches();
}
 
public static String mosaicAlipayName(String withdrawName) {
        if (DataUtils.isMobile(withdrawName)) {
            return DataUtils.hidePhoneNum(StringUtils.isBlank(withdrawName) ? "" : withdrawName);
        } else if(isNumeric(withdrawName)) {
            //银行卡号
            String regex = "(\\w{4})(.*)(\\w{4})";
            Matcher m = Pattern.compile(regex).matcher(withdrawName);
            if (m.find()) {
                String rep = m.group(2);
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < rep.length(); i++) {
                    sb.append("*");
                }
                return withdrawName.replaceAll(rep, sb.toString());
            }
        }

        return withdrawName.replaceAll("(^\\w)[^@]*(@.*$)", "$1****$2");

    }

 

posted @ 2020-06-09 15:43  桔子木木  阅读(2047)  评论(0编辑  收藏  举报