js前端身份证号、手机号脱敏、手机号、身份证号加密处理(ios浏览器兼容性问题)

 更新时间:2022年11月16日 15:50:23   作者:我总是词不达意  
这篇文章主要给大家介绍了关于js前端身份证号、手机号脱敏、手机号、身份证号加密处理的相关资料,还介绍了ios浏览器兼容性问题,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

加密,其实就是对字符串的处理,主要包括查找,截取,替换,当然我们还可以使用正则

前端数据是从后端拿到的,关于数据敏感的问题,可能在开发过程中经常遇到,我们也知道前端对数据的处理也都是表皮层,没法达到真正的安全目的。但,没办法,有时候我们还是要去做一些本不该做的事情来让某些东西看似合理。

1、手机号脱敏

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是表示的小括号里的内容;$1是第一个小括号里的 ,$2是第2个小括号里的 ,以此类推

例如手机号脱敏:

(\d{3}) = 130

(\d{4}) = 5689

3、ios浏览器兼容问题

之前用的正则表达式零宽断言来进行脱敏,导致页面打开空白

safari浏览器不支持正则表达式中携带零宽断言。如果在正则中携带零宽断言,会导致页面空白,并且控制台报错:

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
// 正则替换 手机号脱敏
let mobile = '13031325689';
mobile = mobile.replace(/(?<=\d{3})\d{5}(?=\d{2})/,"*****")
console.log(mobile) // 130*****89

补充: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")
}

总结

到此这篇关于js前端身份证号、手机号脱敏、手机号、身份证号加密处理(ios浏览器兼容性问题)的文章就介绍到这了,更多相关js身份证号、手机号脱敏、加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript实现全选与反选功能

    JavaScript实现全选与反选功能

    这篇文章主要为大家详细介绍了如何分别使用Vue和JavaScript实现全选与反选功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • 12306验证码破解思路分享

    12306验证码破解思路分享

    本文给大家分享的是个人对于12306的新的验证码系统的破解思路,仅仅是思路,还没进行实地验证,推荐给大家,抛砖引玉吧。
    2015-03-03
  • 浅谈JSON.stringify()和JOSN.parse()方法的不同

    浅谈JSON.stringify()和JOSN.parse()方法的不同

    parse 用于从一个字符串中解析出json 对象而stringify用于从一个对象解析出字符串,这篇文章主要介绍了JSON.stringify()和JOSN.parse()方法的不同,需要的朋友可以参考下
    2016-08-08
  • javascript实现下雨效果

    javascript实现下雨效果

    本文主要介绍了javascript实现下雨效果的示例代码。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 基于JavaScript实现书本翻页效果

    基于JavaScript实现书本翻页效果

    在数字阅读体验中,逼真的书本翻页效果能够显著提升用户的沉浸感和愉悦度,本文将深入探讨如何使用JavaScript实现一个流畅而逼真的书本翻页效果,感兴趣的小伙伴跟着小编一起来看看吧
    2025-09-09
  • JavaScript窗口功能指南之在窗口中书写内容

    JavaScript窗口功能指南之在窗口中书写内容

    JavaScript窗口功能指南之在窗口中书写内容...
    2006-07-07
  • 微信小程序中进行地图导航功能的实现方法

    微信小程序中进行地图导航功能的实现方法

    这篇文章主要介绍了微信小程序中进行地图导航功能的实现方法,需要的朋友可以参考下
    2018-06-06
  • javascript表单验证以及正则表达式举例详解

    javascript表单验证以及正则表达式举例详解

    正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,常用于表单验证等,下面这篇文章主要给大家介绍了关于javascript表单验证以及正则表达式的相关资料,需要的朋友可以参考下
    2023-05-05
  • 详谈javascript中DOM的基本属性

    详谈javascript中DOM的基本属性

    DOM节点是一个对象,它有着一些属性。其中有些是只读的,有些可以直接进行更改(updated on-the-fly)。今天我们就来具体探讨下DOM的基本属性,希望对大家能有所帮助
    2015-02-02
  • 使用Javascript简单计算器

    使用Javascript简单计算器

    这篇文章主要为大家详细介绍了使用Javascript简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论