js前端身份證號(hào)、手機(jī)號(hào)脫敏、手機(jī)號(hào)、身份證號(hào)加密處理(ios瀏覽器兼容性問(wèn)題)
前言
加密,其實(shí)就是對(duì)字符串的處理,主要包括查找,截取,替換,當(dāng)然我們還可以使用正則
前端數(shù)據(jù)是從后端拿到的,關(guān)于數(shù)據(jù)敏感的問(wèn)題,可能在開(kāi)發(fā)過(guò)程中經(jīng)常遇到,我們也知道前端對(duì)數(shù)據(jù)的處理也都是表皮層,沒(méi)法達(dá)到真正的安全目的。但,沒(méi)辦法,有時(shí)候我們還是要去做一些本不該做的事情來(lái)讓某些東西看似合理。
1、手機(jī)號(hào)脫敏
const phone = "13031325689"; const str = phone.replace(/(\d{3})\d*(\d{4})/, '$1****$2') console.log(str) // 130****5689
2、身份證號(hào)脫敏
const card = "512326199102115645"; const str1 = card.replace(/(\w{6})\w*(\w{4})/,'$1********$2'); console.log(str) // 512326********5645
$1,$2是表示的小括號(hào)里的內(nèi)容;$1是第一個(gè)小括號(hào)里的 ,$2是第2個(gè)小括號(hào)里的 ,以此類(lèi)推
例如手機(jī)號(hào)脫敏:
(\d{3}) = 130
(\d{4}) = 5689
3、ios瀏覽器兼容問(wèn)題
之前用的正則表達(dá)式零寬斷言來(lái)進(jìn)行脫敏,導(dǎo)致頁(yè)面打開(kāi)空白
safari瀏覽器不支持正則表達(dá)式中攜帶零寬斷言。如果在正則中攜帶零寬斷言,會(huì)導(dǎo)致頁(yè)面空白,并且控制臺(tái)報(bào)錯(cuò):
SyntaxError: Invalid regular expression: invalid group specifier name
或者SyntaxError: Invalid regular expression: unrecognized character after (?
使用方式如下(目前只兼容安卓,safari也不支持):
// 正則替換 身份證號(hào)脫敏 let idCardNum = '512326199102115645'; idCardNum = idCardNum .replace(/(?<=\d{3})\d{12}(?=\d{2})/,"************") console.log(idCardNum) // 512*************45
// 正則替換 手機(jī)號(hào)脫敏 let mobile = '13031325689'; mobile = mobile.replace(/(?<=\d{3})\d{5}(?=\d{2})/,"*****") console.log(mobile) // 130*****89
補(bǔ)充:js 加密姓名和加密身份證號(hào)碼
例子加密姓名
EncryptName(name) { ? ? let newStr; ? ? if(name.length === 2) { ? ? ? newStr = name.substr(0, 1) + '*'; ? ? } else if (name.length > 2) { ? ? ? let char = ''; ? ? ? for (let i = 0, len = name.length - 2; i < len; i++) { ? ? ? ? char += '*'; ? ? ? } ? ? ? newStr = name.substr(0, 1) + char + name.substr(-1, 1); ? ? } else { ? ? ? newStr = name; ? ? } ? ? return newStr; ?}
加密身份證
EncryptCert(cert){ return cert.replace(/^(.{3})(?:\d+)(.{3})$/, "$1*********$2") }
總結(jié)
到此這篇關(guān)于js前端身份證號(hào)、手機(jī)號(hào)脫敏、手機(jī)號(hào)、身份證號(hào)加密處理(ios瀏覽器兼容性問(wèn)題)的文章就介紹到這了,更多相關(guān)js身份證號(hào)、手機(jī)號(hào)脫敏、加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript登錄記住密碼操作(超簡(jiǎn)單代碼)
本文給大家分享一段簡(jiǎn)單的js代碼實(shí)現(xiàn)用戶登錄記住密碼操作,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-03-03canvas壓縮圖片轉(zhuǎn)換成base64格式輸出文件流
本文主要介紹了canvas壓縮圖片轉(zhuǎn)換成base64格式輸出文件流的方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03JavaScript簡(jiǎn)單實(shí)現(xiàn)彈出拖拽窗口(一)
這篇文章主要為大家詳細(xì)介紹了JavaScript簡(jiǎn)單實(shí)現(xiàn)彈出拖拽窗口的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06javascript 改變網(wǎng)頁(yè)加載的CSS
javascript 改變網(wǎng)頁(yè)加載的CSS主要通過(guò)動(dòng)態(tài)響應(yīng)select觸發(fā)的選項(xiàng)變化控制link標(biāo)簽加載的css,以實(shí)現(xiàn)不依賴cookie控制的頁(yè)面css樣式動(dòng)態(tài)加載功能,需要的朋友可以參考一下2007-12-12javascript設(shè)計(jì)模式 – 裝飾模式原理與應(yīng)用實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 裝飾模式,結(jié)合實(shí)例形式分析了javascript裝飾模式基本概念、原理、應(yīng)用場(chǎng)景及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04小程序短信驗(yàn)證碼頁(yè)面實(shí)現(xiàn)demo
這篇文章主要為大家介紹了小程序短信驗(yàn)證碼頁(yè)實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11