平面設(shè)計平臺接單win10最強性能優(yōu)化設(shè)置
一、姓名脫敏
1、脫敏規(guī)則一:顯示姓名中的第一個字,其它用*號代替。
顯示姓名中的第一個字,如為英文等其他語種,也是顯示第一個字母。其它用*號代替。
① 舉例
?張*????????王**????????A****
② 實現(xiàn)方法
hideName(name) {if (!name) {return name}return name.replace(/(^.{1})(.+)$/g, (...args) => {let tempStr = '';if (args[2] && args[2].length) {tempStr = Array.from({length: args[2].length + 1,}).join('*');}return args[1] + tempStr;});
}
③ demo
console.log(hideName('小草莓')) // 小**console.log(utils.hideName('Alice')) // A****
?
2、脫敏規(guī)則二:顯示姓名中的第一個和最后一個字,其它用*號代替。
顯示姓名中的第一個和最后一個字,如為英文等其他語種,也是顯示第一個和最后一個字母。其它用*號代替。
① 舉例
*三? ? ? ?王*蛋? ? ? ? A****e
② 實現(xiàn)方法
hideName(name) {if (!name) {return name}return name.replace(/(^.{1})(.+)$/g, function (...args) {let tempStr = ''if (args[2] && args[2].length) {tempStr = Array.from({length: args[2].length}).join('*')}let res = name.length === 2 ? ('*' + name.slice(-1)) : (args[1] + tempStr + name.slice(-1))return res})
}
③ demo
console.log(hideName('張三')) // *三console.log(hideName('小草莓')) // 小*莓console.log(utils.hideName('Alice')) // A***e
二、證件號碼脫敏
1、對固定位數(shù)進行脫敏
顯示前2位和后2位,其它用*號代替。
① 舉例
32**************1X
② 實現(xiàn)方法
// keepWord是要傳入的不脫敏的位數(shù)
hideIdCard(idCard, keepWord) {if (!idCard) {return idCard}let digits = keepWord ? keepWord : 2,reg = new RegExp(`(^\\w{${digits}})(\\w+)(\\w{${digits}}$)`, 'g')return idCard.replace(reg, function (...args) {let tempStr = ''if (args[2] && args[2].length) {for (let i = 0, len = args[2].length; i < len; i++) {tempStr += '*'}}return args[1] + tempStr + args[3]})},
③ demo
console.log(hideIdCard('H01234567')) // H0*****67console.log(hideIdCard('FRA123456789107')) // FR***********07console.log(hideIdCard('440582202305254223')) // 44**************23
2、特定規(guī)則脫敏
顯示前1/3和后1/3段,其他用*號代替
① 舉例
H01***567
② 實現(xiàn)方法
hideIdCard(idCard) {if (!idCard) {return idCard}let digits = parseInt(idCard.length/3)let reg = new RegExp(`(^\\w{${digits}})(\\w+)(\\w{${digits}}$)`, 'g')return idCard.replace(reg, function (...args) {let tempStr = ''if (args[2] && args[2].length) {for (let i = 0, len = args[2].length; i < len; i++) {tempStr += '*'}}return args[1] + tempStr + args[3]})},
③ demo
console.log(hideIdCard('H01234567')) // H01***567console.log(hideIdCard('FRA123456789107')) // FRA12*****89107console.log(hideIdCard('440582202305254223')) // 440582******254223
三、手機號碼脫敏
顯示前3位+****+后4位。
① 舉例
137****9050
② 實現(xiàn)方法
hidePhone(phone) {let reg = /(\d{3})\d*(\d{4})/return phone ? phone.replace(reg, '$1****$2') : ''}
③ demo
console.log(hideName('18812345678')) // 188****5678
?四、銀行卡卡號脫敏
顯示前3位+ *(實際位數(shù))+后4位
① 舉例
622*********1496
② 實現(xiàn)方法
hideBankAccount(bankAccount) {let reg = /(\d{3})(\d+)(\d{4})/var strLength = bankAccount.match(reg)[2].length;let strValue = ''for(let i = 0; i < strLength; i++) {strValue+='*'}return bankAccount.replace(reg, "$1" + strValue + "$3")}
③ demo
console.log(utils.hideBankAccount('62177777555555553654')) // 621*************3654
?