当前位置: 首页 > ai >正文

前端脱敏展示姓名、手机号、邮箱

姓名脱敏

姓名只显示第一个字,如“张*”、“王**”

/*** 姓名脱敏:只显示第一个字,其余用 * 代替* @param {String} name 姓名字符串* @return {String} 脱敏后的姓名*/
function maskName(name) {if (!name || typeof name !== 'string') {return ''}// 如果姓名长度为0直接返回if (name.length === 0) return ''// 只保留第一个字符,其余替换成 *return name.charAt(0) + '*'.repeat(name.length - 1)
}

手机号脱敏

手机号展示前3位和后4位,中间用 * 替代,如“139****1234”

/*** 手机号脱敏:展示前3位和后4位,中间用 * 替代* @param {String} phone 手机号码字符串* @return {String} 脱敏后的手机号*/
function maskPhone(phone) {if (!phone || typeof phone !== 'string') {return ''}// 正则匹配:保留前3位和后4位,中间用 * 替代return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}

邮箱脱敏

邮箱只显示第一个字符、@及@后面的内容,中间用 * 替代,如“1****@163.com”

/*** 邮箱脱敏:只显示第一个字符、@及@后面的内容,中间用 * 替代* @param {String} email 邮箱地址* @return {String} 脱敏后的邮箱*/
function maskEmail(email) {if (!email || typeof email !== 'string') {return ''}// 正则解释:// ^(.)(.*?)(@.*)$ 分为三组://   1. 第一个字符 (.)//   2. 中间部分 (.*?) 非贪婪匹配//   3. @及后面的内容 (@.*)// 替换为:$1 + * * * ... + $3return email.replace(/^(.)(.*?)(@.*)$/, function(match, firstChar, middle, atPart) {// 如果中间部分为空(如 a@xx.com),则不脱敏if (middle.length === 0) {return match}// 用 * 填充中间部分const maskedMiddle = '*'.repeat(middle.length)return firstChar + maskedMiddle + atPart})
}
http://www.xdnf.cn/news/12342.html

相关文章:

  • 行为型设计模式之Chain of Responsibility(责任链)
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 低内聚高耦合的衡量指标
  • DTS 数据迁移
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 相机Camera日志分析之二十七:高通相机Camx 基于预览1帧的process_capture_result二级日志分析详解
  • AOP实现Restful接口操作日志入表方案
  • 事件监听 ——CAD C#二次开发
  • ES6——数组扩展之Set数组
  • 接口限频算法:漏桶算法、令牌桶算法、滑动窗口算法
  • 小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
  • 深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
  • 鸿蒙开发——如何修改模拟器的显示图标/标题
  • 车牌识别技术解决方案
  • day46打卡
  • 如何防止服务器被用于僵尸网络(Botnet)攻击 ?
  • 进一步探究synchronized
  • 408第一季 - 数据结构 - 线性表II
  • Redis哨兵模式
  • 获1.3亿美元融资,NewLimit利用机器学习指导表观遗传程序设计,延长人类健康寿命研究已有初级成果
  • 自建 dnslog 回显平台:渗透测试场景下的隐蔽回显利器
  • Webpack的基本使用 - babel
  • leetcode78. 子集
  • vue项目引入tailwindcss
  • 实战设计模式之模板方法模式
  • SpringBoot 自动化部署实战:CI/CD 整合方案与避坑指南
  • 数据库正常,但后端收不到数据原因及解决
  • 基于sqlite的任务锁(支持多进程/多线程)