正则
/**
- 替换11位数字(手机号)中的4-7位为*
- @param text 匹配文本
- @return 隐藏后的文本
*/
private static String hideTel (String text) {
// 如果字符串为空,直接返回
if (StringUtils.isBlank(text)) {
return text;
}
// 设定正则表达式(检测11位数字)
Pattern pattern = Pattern.compile("\\d{11}");
Matcher matcher = pattern.matcher(text);
// 如果检测到有匹配值,则替换第四位到第七位为*
while (matcher.find()) {
String beforeChange = matcher.group(0);
String afterChange = beforeChange.substring(0, 3) + "****" + beforeChange.substring(7);
text = text.replace(beforeChange, afterChange);
}
return text;
}
public static void main(String[] args) {
System.out.println(hideTel("18512345678feiji18512345687"));
System.out.println(hideTel("12345678910"));
System.out.println(hideTel("123456789101"));
System.out.println(hideTel("123456799114"));
}
185****5678feiji185****5687
123****8910
123****89101
123****99114
网友评论