实现18位身份证输入隔位添加空格?

怎么实现下面身份证这种格式 需要输入的时候 input框实时更新
370800 20081001 1234

val.replace(/\s/g,'').replace(/....(?!$)/g,'$& ')
这种只能4个字符 加一个空格 .... .... .... ....

阅读 3.5k
1 个回答

没有规律啊,只能全匹配写:

`.replace(/\s/g,'').replace(/(\d{6})(\d{8})?(\d{4})?/,'$1 $2 $3')`
//凑活用吧
.replace(/(\d{6})(\d{0,8})?(\d{0,4})?/,function(res,$1,$2,$3){
    if(res.length <= 6){return $1}
    if(res.length <= 14){return $1 + ' ' + $2}
    return $1 + ' ' + $2 + ' ' +$3
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题