前端手机身份证护照通行证数据脱敏


目标:前端实现多证件显示数据脱敏

phoneNumberDesensitization(phone){
    /*手机号脱敏*/
    phone = phone.replace(/(\d{3})\d{4}(\d{4})/,"$1***********$2");
    return phone;
  },
  passportDesensitization(passport){
    /*护照脱敏*/
    //match匹配出的子串为数组形式保存,会将护照针对正则里的每一个“或”条件都去匹配一次
    var passportmatch = passport.match(/^1[45][0-9]{7}|([P|p|S|s]\d{7})|([S|s|G|g|E|e]\d{8})|([Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\d{8})|([H|h|M|m]\d{8,10})$/);
    if (passportmatch != null){
      //取出护照号子串用于替换,<这里p是要取数组的第一个非空元素>
      const p = passportmatch.filter(function () {
        return true;
      })[0];
      passport=passport.replace(p,p.substring(0,1)+"*******"+p.substring(p.length-1,p.length))
    }
    return passport;
  },
  gaPassportDesensitization(GApassport){
    /*港澳通行证脱敏*/
    var GAmatch=GApassport.match(/([H|M]\d{8})/);
    if (GAmatch!=null){
      const ga=GAmatch[0];
      GApassport=GApassport.replace(ga,ga.substring(0,1)+"********"+ga.substring(ga.length-1,ga.length))
    }
    return GApassport;
  },
  tPassportDesensitization(Tpassport){
    /*台湾通行证脱敏*/
    var Tmatch=Tpassport.match(/\d{8}|\d{18}/);
    if (Tmatch!=null){
      const t = Tmatch.filter(function () {
        return true;
      })[0];
      Tpassport=Tpassport.replace(t,t.substring(0,2)+"*****"+t.substring(t.length-1,t.length))
    }
    return Tpassport;
  },
  foreignerDesensitization(foreigner){
    /*外国人永久居留证脱敏*/
    //var foreigner="外国人永久居留证是:HMA8888888812212"
    var fore=foreigner.match(/[A-Z]{3}\d{12}/);
    if (fore!=null){
      const f = fore.filter(function () {
        return true;
      })[0];
      foreigner=foreigner.replace(f,f.substring(0,3)+"***********"+f.substring(f.length-1,f.length))
    }
    return foreigner;
  },
  identityDesensitization(identityCard){
    /*身份证脱敏*/
    //此处必须用 new RegExp(),否则打包报错
    let reg = new RegExp("(?<=\\d{3})\\d{12}(?=\\d{2})","g");
    return identityCard.replace(reg, "************")
  },
  ocrDesensitization(str){
    /*ocr多证件脱敏-方法执行强制要求顺序性*/
    /*身份证脱敏*/
    str=this.identityDesensitization(str);
    /*外国人永久居留证脱敏*/
    str=this.foreignerDesensitization(str);
    /*港澳通行证脱敏*/
    str=this.gaPassportDesensitization(str);
    /*护照脱敏*/
    str=this.passportDesensitization(str);
    /*台湾通行证脱敏*/
    str=this.tPassportDesensitization(str);
    return str;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值