明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

js 用**遮罩身份证以及手机号中间部位,进行掩码处理

一、应用场景

实例将 18位身份证 以及11位的手机号进行遮掩处理
样例为 42333333330435 和15765559657
转为的结果如图:

 

二、实现思路

转化的代码为 自己创建一个js文件将代码复制进去,思路是可以传 头部显示多少位置 ,末尾显示几位,然后进行计算中间的星星数,最近进行拼接则达到我们想要的数据。

// 设置**遮罩隐藏  参数( 数据  前三位 后四位)
function basecclusion(data, frontShow, afterShow) {
     if (data.length <= afterShow) return "";

    let dataLengh = data.length;
    if (dataLengh > frontShow + afterShow) {
        let obscuringStar = '*';
        // 计算中间星星数
        for (let i = 0; i < dataLengh - frontShow - afterShow; i++) {
            obscuringStar += '*';
        }
        return data.substring(0, frontShow) + obscuringStar + data.substring(data.length - afterShow, data.length);
    } else {
        return '—'; // 不规范时返回'-'
    }
}
// 自定义 遮盖长度
export function occlusion(data, frontShow, afterShow) {
    return basecclusion(data, frontShow, afterShow);
}
// 身份证遮盖长度
export function occlusionToidCard(data) {
    return basecclusion(data, 6, 4);
}
// 手机号遮盖长度
export function occlusionToPhone(data) {
    return basecclusion(data, 3, 4);
}-

 

 

 

三、使用方法

因为进行了二次封装 有三个方法,自己可以在basecclusion基础上自己设置,进行导出目前可以用有以下
occlusionToidCard 用来处理身份证,
occlusionToPhone用来处理手机号,
occlusion 动态设置的遮掩的长度

import { occlusionToidCard, occlusionToPhone, occlusion} from '@/utils/processing.js';
let idCard=421127333330435
console.log(  occlusionToidCard(text)) // 输出421127********0435
let phone=15765559657
console.log(  occlusionToidCard(phone)) // 输出157****9657
let text='404840我的'
 console.log(occlusion (text,2,3)) // 输出'404**0我的'   输出 前2个 和末尾3个显示