手机号脱敏处理
function noPassByMobile(str){ //中间四位脱敏
if(null != str && str != undefined){
var pat=/(\d{3})\d*(\d{4})/;
return str.replace(pat,'$1****$2');
} else {
return "";
}
}
姓名脱敏处理
function noPassByName(str){ //3个字以内脱敏第一个字,4—6个字脱敏前两个字,大于6个字脱敏第3—6个字
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 "";
}
}
身份证号脱敏处理
function noPassById(str) {
if (null != str && str != undefined) {
var pat = /(\d{4})\d*(\d{4})/;
return str.replace(pat, '$1***********$2');
} else {
return "";
}
}
邮箱脱敏处理
function noPassByEmail(email) {
let new_email = email;
if (String(email).indexOf('@') > 0) {
let str = email.split('@');
let _s = '';
if (str[0].length > 3) { //@前面多于3位
for (let i = 3; i < str[0].length; i++) {
_s += '*';
}
new_email= str[0].substr(0, 3) + _s + '@' + str[1];
}else{ //@前面小于等于于3位
for(let i = 1;i<str[0].length;i++){
_s+='*'
}
new_email = str[0].substr(0,1)+ _s + '@' + str[1]
}
}
return new_email;
}
自定义前几位、后几位进行脱敏
getChannelName(value) {
if (value != null || value != undefined) {
let valueLength = getStrlen(value)
if (valueLength > 2) {
value = plusXing(value, 1, 1, '*')
return value
} else if ((valueLength = 2)) {
value = plusXing(value, 0, 1, '*')
return value
} else {
return value
}
} else {
return value
}
function getStrlen(str) {
let n = 0 //定义变量n,初始值为0
for (let i = 0; i < str.length; i++) {
//应用for循环语句,获取表单提交用户名字符串的长度
let leg = str.charCodeAt(i) //获取字符的ASCII码值
if (leg > 255) {
//判断如果长度大于255
n++ //则表示是汉字为2个字节
} else {
n++ //否则表示是英文字符,为1个字节
}
}
return n
}
function plusXing(str, frontLen, endLen, cha) {
// str:需处理的字符串;frontLen:保留前几位;endLen 保留后几位;cha 替换的字符串
let len = str.length - frontLen - endLen
let xing = ''
for (let i = 0; i < len; i++) {
xing += cha
}
return (
str.substring(0, frontLen) + xing + str.substring(str.length - endLen)
)
}
},