public static String valMask(String val) {
String bakVal = val;
String textVal=val;
try {
String myregex = "(?<!\\d)\\d{10,19}(?!\\d)";
Pattern pattern = Pattern.compile(myregex);
Matcher matcher = pattern.matcher(textVal);
while(matcher.find()) {
if(!StringUtil.isNullStr(matcher.group())){
if(matcher.group().length()==11){
//判断手机号是否纯数字
if(isNumber(matcher.group())){
String phoneMask=mobilePhone(matcher.group());
if(!StringUtil.isNullStr(phoneMask)){
val=val.replaceAll(matcher.group(), phoneMask);
}
}
}
}
}
//固化脱敏0775-6678111
Pattern patternGuHua = Pattern.compile("(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)");
Matcher matcherGuHua = patternGuHua.matcher(val);
while(matcherGuHua.find()){
if(!StringUtil.isNullStr(matcherGuHua.group())){
String phoneMask=mobilePhone(matcherGuHua.group());
if(!StringUtil.isNullStr(phoneMask)){
val=val.replaceAll(matcherGuHua.group(), phoneMask);
}
}
}
} catch (Exception e) {
//报错时值恢复
val=bakVal;
e.printStackTrace();
}
return val;
}
public static String mobilePhone(String phone) {
if (StringUtil.isNullStr(phone)) {
return "";
}
return StringUtils.left(phone, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(phone, 4), StringUtils.length(phone), "*"), "***"));
}
public static boolean isNumber(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
java中对一段字符串进行电话号码脱敏方法
最新推荐文章于 2024-05-02 08:00:00 发布