直接上代码
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);
}
}