身份证号码中间用*号代替

请问这个要怎么实现呢,是用正则还是字符串呢?麻烦给个小demo参考下,新手见谅!谢谢!

阅读 13.5k
4 个回答

正则也行
var str='1234567890123';

var str1=str.replace(/(\d{3})(\d+)(\d{3})/,function(x,y,z,p){
    var i="";
    while(i.length<z.length){i+="*"}
    return y+i+p
})
console.log(str1)

之前做过信用卡号隐藏的功能,用正则的分组,java代码

cardNumber.replaceAll("(\\d{4})(\\d+)(\\d{4})", "$1***$3")

最好在后端服务器处理,前端处理没有意义

身份证分为15和18位。。最简单的办法是截取前几位、再截取后几位,再加上*拼成一个新的字符串。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题