JS 脱敏通用方法
时间:2021-08-08
本文章向大家介绍JS 脱敏通用方法,主要包括JS 脱敏通用方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
记录一些常用的脱敏通用方法
具体实现
- 脱敏工具类
/**
* 脱敏相关操作
*/
export class Desensitized {
static phoneReg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{4}(\d{4})$/; // 手机号正则校验
static idNoReg = /(\d{6})(\d*)(\w{3})/; // 简易身份证号码正则
static addrReg = /(.{9})(.*)/; // 地址正则
/**
* 名字脱敏 保留首位
* @param fullName
* @returns {string}
*/
static desensitizedName (fullName) {
if (!fullName) {
return "";
}
let str = fullName.substr(0, 1);
for (let i = 0; i < fullName.length - 1; i++) {
str += '*';
}
return str;
}
/**
* 脱敏公用
* @param str 脱敏字符串
* @param begin 起始保留长度,从0开始
* @param end 结束保留长度,到str.length结束
* @returns {string}
*/
static desensitizedCommon (str, begin, end) {
if (!str && (begin + end) >= str.length) {
return "";
}
let leftStr = str.substring(0, begin);
let rightStr = str.substring(str.length - end, str.length);
let strCon = ''
for (let i = 0; i < str.length - end - begin; i++) {
strCon += '*';
}
return leftStr + strCon + rightStr;
}
/**
* 手机号脱敏
* @param str
* @returns {string|*|string}
*/
static desensitizedPhone (str) {
if (!str) {
return "";
}
return str.replace(this.phoneReg, '$1****$2');
}
/**
* 身份证号脱敏
* @param str
* @returns {string|*|string}
*/
static desensitizedIdNo (str) {
if (!str) {
return "";
}
if(this.idNoReg.test(str)){
let text1 = RegExp.$1;
let text3 = RegExp.$3;
let text2 = RegExp.$2.replace(/./g,"*");
return text1 + text2 + text3;
}
return str;
}
/**
* 地址脱敏
* @param str
* @returns {string|*|string}
*/
static desensitizedAddr(str){
if (!str) {
return "";
}
if(this.addrReg.test(str)){
let text1 = RegExp.$1;
let text2 = RegExp.$2.replace(/./g,"*");
return text1 + text2 ;
}
return str;
}
}
- 测试
import { Desensitized } from "./utils/desensitized";
let obj = {
name: Desensitized.desensitizedName("张三"),
mobile: Desensitized.desensitizedCommon("13888888888", 3,4),
phone: Desensitized.desensitizedPhone("13888888888"),
idNo: Desensitized.desensitizedIdNo("530381199908133239"),
addr: Desensitized.desensitizedAddr("四川省成都市高新区xxx小区31栋123号")
}
console.log(obj)
- 结果
原文地址:https://www.cnblogs.com/maggieq8324/p/15115251.html
- Python语言被列入全国计算机等级考试科目中
- WordPress纯代码高仿 无觅相关文章 图文模式功能
- 各种序列化库的性能数据
- WordPress内置搜索结果只有一篇文章时自动跳转到该文章
- Flash/Flex学习笔记(23):运动学原理
- WordPress重定向作者归档链接到“关于”页面
- Flash/Flex学习笔记(25):摩擦力与屏幕环绕
- 搞事情!富士通和微软强强联手用AI加速工作方式转变
- MySQL管理工具HeidiSQL
- Centos 使用YUM安装MariaDB
- Div Scroll Bar (用层模拟滚动条)
- WordPress免插件仅代码实现文章浏览次数的方法(3)
- 定义新智慧,这AI很“远景X3”
- WordPress删除头部wp_head()多余代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- centos配置ssh免密码登录后仍要输入密码的解决方法
- CentOS7.2安装Nginx的方法步骤
- CentOS安装Python2.7与Python2.6并存的方法
- 详解Centos下YUM安装PHP的两种方式
- linux下make命令实现输出高亮的方法
- Ubuntu彻底卸载MySQL、Apache2和Php的方法教程
- linux下如何创建守护进程的步骤
- ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解
- centos6.8下hadoop3.1.1完全分布式安装指南(推荐)
- 批处理模式下运行 top 命令的方法
- 关于CentOs系统自带python和yum卸载后的解决办法
- Linux sftp命令用法总结
- CentOS 7中搭建NFS文件共享存储服务的完整步骤
- centos 7中添加一个新用户并授权的步骤详解
- Linux下Apache HTTP Server 2.4.26安装教程