最近做项目的时候,要对外提供账号,以便其他人员登录使用,但这里有个敏感问题,就是数据安全。处理数据安全的方式很多,比如禁止下载,添加水印。还有一些包括人员身份证号,手机号需要脱敏处理。
手机号码脱敏
// 脱敏展示
desensitization(str, beginstr, endstr) {
const header = str.substr(0, beginstr)
// subStr的用法是,从第几个字符开始,故而endStr用负数代替,从后往前第几位,一直到结尾
const footer = str.substr(endstr)
// Math.abs将负数变更为正整数,enstr代表从后往前数几位数
// /[\s\S]/ig 正则表示全文数替换
const content = str.substring(beginstr, str.length - Math.abs(endstr)).replace(/[\s\S]/ig, '*')
const templatestr = header + content + footer
return templatestr
}
使用方法 this.desensitization(12345678, 3, -3) 输出内容 123*****678
身份证号脱敏
var _idcard = "411425199810328466";
_idcard.replace(/^(.{6})(?:\d+)(.{4})$/, "\$1****\$2")
得到的结果是:411425****8466
前边的6就是左边显示多少位,后边的4就是右边显示多少位,$1和$2之间 是脱敏后中间要显示的星号*的个数。