需求1: 11位手机号中间四位脱敏显示,例如:187****1234
function noPassByMobile(str){
if(null != str && str != undefined){
var pat=/(\d{3})\d*(\d{4})/;
return str.replace(pat,'$1****$2');
} else {
return "";
}
}
需求2: 姓名脱敏处理,规则:3个字以内脱敏第一个字,4—6个字脱敏前两个字,大于6个字脱敏第3—6个字,示例:张三(*三)、张三水(*三水)、长孙无忌(**无忌)、罗斯托罗司机格(罗斯XXXX格)
function noPassByName(str){
if(null != str && str != undefined){
if(str.length <= 3){
return "*" + str.substring(1,str.length);
} else if(str.length > 3 && str.length <= 6){
return "**" + str.substring(2,str.length);
} else if(str.length > 6){
return str.substring(0,2) + "****" + str.substring(6,str.length)
}
} else {
return "";
}
}
需求3: 身份证号脱敏处理
//正则表达式
var idCard = '410184199312042029';
var id2 = idCard.replace(/^(.{6})(?:\d+)(.{4})$/, "$1****$2");
var id3 = idCard.replace(/^(.{2})(?:\w+)(.{1})$/, "\$1****\$2");
var id4 = idCard.replace(/^(.{4})(?:\w+)(.{4})$/, "\$1****\$2");