jQuery对字符串内身份证号和手机号码进行脱敏

什么是脱敏

数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。

实现方法

//数字从第四位至倒数第四位脱敏
    function formatNumber(value) {
        var val = ''
        if (value.length > 0) {
            if (value.length > 11)
                val = value.substring(0, 4) + '******' + value.substring(value.length - 4);
            else if (value.length > 7)
                val = value.substring(0, 3) + '******' + value.substring(value.length - 2);
        }
        return val;
    }

//直接调用这个方法即可
 function Desensitization(content) {
        //正则表达式获得字符串中所有数字相关
        var Reg = /(\d{1,3})+(?:\.\d+)?/g
        var content_int = content.match(Reg);

        if (content_int != null && content_int != "null") {
            for (var i = 0; i < content_int.length; i++) {
                if (content_int[i].length == 18) //身份证号18位 
                {
                    var newIDcard = formatNumber(content_int[i]);
                    content = content.replace(content_int[i], newIDcard);
                }
                else if(content_int[i].length == 17) //身份证号13位 (可能包含一位英文字母)
                {
                    var newIDcard = formatNumber(content_int[i]);
                    content = content.replace(content_int[i], newIDcard);
                }
                else if (content_int[i].length == 11)  //11位手机号码
                {
                    var newPhone = formatNumber(content_int[i]);
                    content = content.replace(content_int[i], newPhone);
                }
                else if (content_int[i].length == 8)  //8位电话号码
                {
                    var newTel = formatNumber(content_int[i]);
                    content = content.replace(content_int[i], newTel);
                }
                else if (content_int[i].length == 12)  //带区号电话号码
                {
                    var newCodeTel = formatNumber(content_int[i]);
                    content = content.replace(content_int[i], newCodeTel);
                }
            }
        }
        return content;
    }

引用

var content _result= Desensitization(delHtmlTag(content));

  • delHtmlTag 是清除字符串中所有HTML标签的
  • content 是您要进行处理的字符串
  • content _result 是处理过后的字符串

处理结果

我认为, 3203******4701X总结的来说, 一般来说, 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 赫尔普斯曾经说过,有时候读书是一种巧妙地避开思考的方法。我希望诸位也能好好地体会这句话。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 就我个人来说,一天掉多少0516******2918根头发对我的意义,不能不说非常重大。 一187******38般来讲,我们都必须务必慎重的考虑833******18考虑。

delHtmlTag 是清除字符串中所有HTML标签方法

function delHtmlTag(str, length) {
    if (IsNullOrEmpty(str)) {
        return '';
    }
    if (IsNullOrEmpty(length)) {
        length = 100;
    }
    return str.replace(/<[^>]+>/g, "").substring(0, length);//去掉所有的html标记
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值