工作中遇到要将系统中的手机号和身份证号等信息进行脱敏,于是自己封装了个通用的方法
/**
* 脱敏
* @param {Object} str 需要进行脱敏的数据
* @param {Object} beginLen 首部保留长度
* @param {Object} endLen 尾部保留长度
*/
Desensitization(str, beginLen, endLen) {
let len = str.length,
firstStr = str.substr(0, beginLen),
lastStr = str.substr(-endLen),
middleStr = str.substring(beginLen, len - Math.abs(-endLen)).replace(/[\s\S]/gi, '*');
return firstStr + middleStr + lastStr;
}
Desensitization('18353246789097654', 4, 4)
结果:1835*********7654