在前端开发中,有些时候需要对数据进行脱敏处理,比如在显示电话号码、邮件地址等信息时,为保护用户隐私,我们需要将一些关键信息部分用 * 替换掉。这时候就需要使用一个强大的 npm 包 rocket-mask。
安装
在命令行中执行以下命令即可安装:
npm install rocket-mask --save
引入
在需要使用的文件中引入 rocket-mask:
import Mask from 'rocket-mask';
若是使用 require 的方式,可以这样引入:
const Mask = require('rocket-mask');
用法
基本用法
Mask 对象提供了多种掩码的方式,在常用 11 位手机号码和 18 位身份证号码掩码:
const phone = '18888888888'; const idCard = '110101199003076666'; console.log(Mask.maskMobile(phone)); // 188****8888 console.log(Mask.maskIdCard(idCard)); // 1101011990****6666
通过调用 Mask 提供的方法 maskMobile
和 maskIdCard
,将 11 位的手机号码和 18 位的身份证号码进行脱敏处理。
自定义掩码符号
Mask 还支持自定义掩码符号,使用 setMaskSymbol
方法即可:
Mask.setMaskSymbol('#'); console.log(Mask.maskMobile('18888888888')); // 188####8888
使用正则表达式进行掩码
Mask 的掩码方法还支持正则表达式掩码,通过 maskWithRegex
方法可以实现:
const str = 'abcde12345fghi'; const pattern = /\d+/g; const maskedStr = Mask.maskWithRegex(str, pattern, '*'); console.log(maskedStr); // abcde*****fghi
这个方法将会把字符串中的数字部分进行掩码,替换成 *
。
总结
使用 npm 包 rocket-mask 可以很方便的进行数据脱敏,保护用户隐私。同时,它也提供了多种掩码方式,以及支持自定义掩码符号和正则表达式掩码。在项目中可以根据需求灵活使用。
示例代码:
-- -------------------- ---- ------- ------ ---- ---- -------------- ------------------------ ----- ----- - -------------- ----- ----------- - ----------------------- ------------------------- -- ----------- ----- --- - ----------------- ----- ------- - ------- ----- --------- - ----------------------- -------- ----- ----------------------- -- --------------
更多关于 rocket-mask 的使用方法,可以参考官方文档:https://www.npmjs.com/package/rocket-mask。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f81238a385564ab6b90