前端开发技术文程序员

JS隐藏部分号码

2015-11-11  本文已影响1800人  乘着风

银行卡,身份证,手机号码等等都需要隐藏部分号码来起到保护作用。
以下是用javascript来制作的一个转换字符串的函数(replaceChars),可以用自定义的字符(mask)来替换相应位数(length)的号码,也可以利用参数(fromBegin)来使其“从头”或者“从尾”隐藏。

var replaceChars = function(str,length,fromBegin,mask){
  mask = mask ? mask : '*';
  var replacement = '';
  for(var i=0; i<length; i++){
    replacement += mask;
  }
  if(fromBegin){
    var regexp = new RegExp('.{1,' + length + '}');
    return str.replace(regexp, replacement);
  } else {
    var regexp = new RegExp('.{' + (str.length - length) + ',' + str.length + '}');
    return str.substring(0,(str.length - length)) + str.replace(regexp, replacement);
  }
}

//clear();
//var str = '123456789';
//console.log(replaceChars(str,5,false,'*'));

此函数的核心是利用原生JS中字符串的replace方法,这个方法的第一个参数可以是字符串或正则表达式,这里采用的是正则表达式来确定需要替换的字符。


图片来自于网络

拓展:


参考文章:55分钟学正则,w3cshool - replace(),隐藏手机号
</br>

上一篇 下一篇

猜你喜欢

热点阅读