js前端身份證號、手機(jī)號脫敏、手機(jī)號、身份證號加密處理(ios瀏覽器兼容性問題)
前言
加密,其實(shí)就是對字符串的處理,主要包括查找,截取,替換,當(dāng)然我們還可以使用正則
前端數(shù)據(jù)是從后端拿到的,關(guān)于數(shù)據(jù)敏感的問題,可能在開發(fā)過程中經(jīng)常遇到,我們也知道前端對數(shù)據(jù)的處理也都是表皮層,沒法達(dá)到真正的安全目的。但,沒辦法,有時(shí)候我們還是要去做一些本不該做的事情來讓某些東西看似合理。
1、手機(jī)號脫敏
const phone = "13031325689";
const str = phone.replace(/(\d{3})\d*(\d{4})/, '$1****$2')
console.log(str) // 130****5689
2、身份證號脫敏
const card = "512326199102115645";
const str1 = card.replace(/(\w{6})\w*(\w{4})/,'$1********$2');
console.log(str) // 512326********5645
$1,$2是表示的小括號里的內(nèi)容;$1是第一個(gè)小括號里的 ,$2是第2個(gè)小括號里的 ,以此類推
例如手機(jī)號脫敏:
(\d{3}) = 130
(\d{4}) = 5689
3、ios瀏覽器兼容問題
之前用的正則表達(dá)式零寬斷言來進(jìn)行脫敏,導(dǎo)致頁面打開空白
safari瀏覽器不支持正則表達(dá)式中攜帶零寬斷言。如果在正則中攜帶零寬斷言,會導(dǎo)致頁面空白,并且控制臺報(bào)錯(cuò):
SyntaxError: Invalid regular expression: invalid group specifier name
或者SyntaxError: Invalid regular expression: unrecognized character after (?
使用方式如下(目前只兼容安卓,safari也不支持):
// 正則替換 身份證號脫敏
let idCardNum = '512326199102115645';
idCardNum = idCardNum .replace(/(?<=\d{3})\d{12}(?=\d{2})/,"************")
console.log(idCardNum) // 512*************45
// 正則替換 手機(jī)號脫敏
let mobile = '13031325689';
mobile = mobile.replace(/(?<=\d{3})\d{5}(?=\d{2})/,"*****")
console.log(mobile) // 130*****89補(bǔ)充:js 加密姓名和加密身份證號碼
例子加密姓名
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前端身份證號、手機(jī)號脫敏、手機(jī)號、身份證號加密處理(ios瀏覽器兼容性問題)的文章就介紹到這了,更多相關(guān)js身份證號、手機(jī)號脫敏、加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)全選與反選功能
這篇文章主要為大家詳細(xì)介紹了如何分別使用Vue和JavaScript實(shí)現(xiàn)全選與反選功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
淺談JSON.stringify()和JOSN.parse()方法的不同
parse 用于從一個(gè)字符串中解析出json 對象而stringify用于從一個(gè)對象解析出字符串,這篇文章主要介紹了JSON.stringify()和JOSN.parse()方法的不同,需要的朋友可以參考下2016-08-08
基于JavaScript實(shí)現(xiàn)書本翻頁效果
在數(shù)字閱讀體驗(yàn)中,逼真的書本翻頁效果能夠顯著提升用戶的沉浸感和愉悅度,本文將深入探討如何使用JavaScript實(shí)現(xiàn)一個(gè)流暢而逼真的書本翻頁效果,感興趣的小伙伴跟著小編一起來看看吧2025-09-09
JavaScript窗口功能指南之在窗口中書寫內(nèi)容
JavaScript窗口功能指南之在窗口中書寫內(nèi)容...2006-07-07
微信小程序中進(jìn)行地圖導(dǎo)航功能的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序中進(jìn)行地圖導(dǎo)航功能的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-06-06
javascript表單驗(yàn)證以及正則表達(dá)式舉例詳解
正則表達(dá)式描述了一種字符串匹配的模式,可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等,常用于表單驗(yàn)證等,下面這篇文章主要給大家介紹了關(guān)于javascript表單驗(yàn)證以及正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2023-05-05

