java手机号,身份证号,卡号,姓名 正则表达式脱敏
public static void replaceSensitive(){// 卡号显示前6位和后4位,中间打*点, 卡号:16,19,19位都有可能String accountNumber = "6543211234567890";int encLength = accountNumber.length() - 10;String regex = "(\\d{6})\\d{" + encLen
·
public static void replaceSensitive(){
// 卡号显示前6位和后4位,中间打*点, 卡号:16,19,19位都有可能
String accountNumber = "6543211234567890";
int encLength = accountNumber.length() - 10;
String regex = "(\\d{6})\\d{" + encLength+ "}(\\w{4})";
// $1表示匹配第一个{}的内容
System.out.println("accountNumber:"+accountNumber.replaceAll(regex,"$1*********$2"));
String userName = getUserName("杨柳依依");
// 姓名 显示最后一个汉字,其他打*
System.out.println("userName:"+userName);
String mobile = "15529636659";
// 手机号11位 中间四位展示 ****
System.out.println("mobile:"+mobile.replaceAll("(\\d{3})\\d{4}(\\w{4})","$1****$2"));
// 身份证号18位 只展示后四位
String idCard = "612423199712116552";
System.out.println("idCard:"+idCard.replaceAll("\\d{14}(\\w{4})","**************$1"));
}
private static String getUserName(String userName)
{
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < userName.length() - 1; i++)
{
sb.append("*");
}
sb.append(userName.substring(userName.length() - 1));
return sb.toString();
}
更多推荐
已为社区贡献3条内容
所有评论(0)