适用于包含中文、英文以及数字的字段脱敏处理:
/**
* 字段脱敏处理
* @param {String} field 未脱敏字段
* @param {Int} before 开头未脱敏字符数
* @param {Int} after 结尾未脱敏字符数
* @return {String} 已脱敏字段
*/
function sensitiveField(field, before = 3, after = 4) {
if (!field) {
return '';
}
field = String(field);
// 匹配中文、英文、数字
const regItem = '[\u4e00-\u9fa5a-zA-Z0-9]';
const regExp = `(${regItem}{${before}})${regItem}*(${regItem}{${after}})`;
const reg = new RegExp(regExp);
return field.replace(reg, '$1*****$2');
}