• 前端数据脱敏处理方法


    数据脱敏常用于手机号、身份证号等敏感信息中

    方法一:

    /**
     * 关键信息隐藏
     * @param str 字符串
     * @param frontLen 字符串前面保留位数
     * @param endLen 字符串后面保留位数
     * @returns {string}
     */
    function hideCode(str, frontLen, endLen) {
        var len = str.length - frontLen - endLen;
        var xing = '';
        for (var i = 0; i < len; i++) {
            xing += '*';
        }
        return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
    };
    

    方法二:

    /** 
      * str:字符串 beginStr:开始位置 endStr:结束位置;
      */
    common.desensitization = function(str,beginStr,endStr){
        var len = str.length;
        var leftStr = str.substring(0,beginStr);
        var rightStr = str.substring(endStr,len);
        var str = ''
        var i = 0;
        try {
            for (i = 0; i < endStr-beginStr;i++) {
                str = str + '*';
            }
        } catch (error) {
             
        }
        str = leftStr + str + rightStr;
        return str;
    }
    

    方法三:

    function desensitization(str, beginLen, endLen){
        var len = str.length;
        var firstStr = str.substr(0, beginLen);
        var lastStr = str.substr(endLen);
        var middleStr = str.substring(beginLen, len-Math.abs(endLen)).replace(/[sS]/ig, '*');
    
        tempStr = firstStr+middleStr+lastStr;
    
        return tempStr;
    
    }
    desensitization('12345678901234',4, -4);
    

    方法四:

    数字类型
    
    certificatecodecopy = certificatecode.replace(/^(.{6})(?:d+)(.{4})$/,  "$1****$2");
    所有类型
    
    enginenocopy = engineno.replace(/^(.{2})(?:w+)(.{1})$/, "$1****$2");
    
    
    enginenocopy = engineno.replace(/^(.{4})(?:w+)(.{4})$/, "$1****$2");
    
    // vue中使用
    <el-table-column
                      width="200px"
                      prop="credentialsNum"
                      label="身份证号码"
                      align="center"
                    >
                      <template slot-scope="scope">
                      <p v-if="scope.row.credentialsNum != null && scope.row.credentialsNum != '' ">
                        {{scope.row.credentialsNum.replace(/^(.{6})(?:d+)(.{4})$/, "$1****$2")}}
                      </p>
                      <p v-else>未知</p>
                      </template>
                    </el-table-column>
    

      

  • 相关阅读:
    JDK5.0新特性系列10.监控与管理虚拟机
    JDK5.0新特性系列7.使用ProcessBuilder执行本地命令
    JDK5.0新特性系列4.静态导入
    JDK5.0新特性系列8.泛型编程
    JDK5.0新特性系列11.2线程 任务执行架构
    JDK5.0新特性系列6.格式化输出
    Request的编码问题,客户端为繁体系统时为乱码解决了。
    智能手机之新手篇[转]
    一篇颇有感触的文章
    修复Oracle9i中DBA的密码
  • 原文地址:https://www.cnblogs.com/ygunoil/p/13503540.html
Copyright © 2020-2023  润新知