正则 替换指定范围的字符串

对指定范围的元素进行*替换。

对数字做隐藏处理,有更好的正则的处理方式吗。
写了一个字符串的处理方式,demo如下:

// 对证件类型做特殊处理
hideCertificate(number) {
    let a = '12345678';
    let len = a.length;
    let res;
    res = `${a.substr(0, len / 2 / 2)}${new Array(Math.floor(len / 2)).fill('*').join('')}${a.substr(-(len / 2 / 2))}`;
    console.log(res);
    // 12****78
},
阅读 3.7k
3 个回答
let len=a.length
let reg=`\\d{${~~(len/4)}}`
a.replace(new RegExp(`^(${reg})(\\d*)(${reg})$`),`$1${"*".repeat(len/2)}$3`)

res = a.replace(/^(\d{2})(.*?)(\d{2})$/, (match, p1, p2, p3)=>p1+p2.replace(/./g, "*")+p3)

replace(/^((\d{2})\d+(\d{2}))$/, '$2****$3')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题