1、手机号隐藏中间4位
var phone = "18200002111";
phone.replace(/^(\d{3})\d+(\d{4})$/, "$1****$2");
输出结果:
2、身份证隐藏中间数字
2.1兼容尾数后面携带字母的
/**
* 隐藏身份证中间8位数
* @param {data} 传入数据
* 格式:530026******2101
*/
const idCard = (data) => {
return data.replace(/(.{6}).*(.{4})/, "$1********$2")
}
2.2(不建议使用,只能隐藏纯数字的身份证)
var idcard = '530026222211032101';
idcard.replace(/^(\d{6})\d+(\d{4})$/, "$1******$2");
输出结果:
3、姓名的隐藏
/**
* 只隐藏姓名中间的字
* @param {data} 传入数据
* 格式:张*三
*/
const hideCenterName = (name) => {
let newStr;
if (name.length === 2) {
newStr = name.substr(0, 1) + '*';
} else if (name.length > 2) {
let char = '';
for (let i = 0, len = name.length - 2; i < len; i++) {
char += '*';
}
newStr = name.substr(0, 1) + char + name.substr(-1, 1);
} else {
newStr = name;
}
return newStr;
}
/**
* 只显示姓氏
* @param {data} 传入数据
* 格式:张**
*/
const showFirstName = (name) => {
let newStr;
if (name.length === 2) {
newStr = name.substr(0, 1) + '*';
} else if (name.length > 2) {
let char = '';
for (let i = 0, len = name.length - 1; i < len; i++) {
char += '*';
}
newStr = name.substr(0, 1) + char;
} else {
newStr = name;
}
return newStr;
}