美文网首页
js 身份证动态验证相关 Vue

js 身份证动态验证相关 Vue

作者: Micro同学 | 来源:发表于2019-03-22 20:25 被阅读0次

移动端
iOS 可监听keydown事件

idNoReg (event) {
  if (!this.isIOS) {
    return
  }
  // console.log('keyCode === ' + event.keyCode)
  // console.log('this.kidsInfo.id_no.length === ', this.kidsInfo.id_no.length)
  if (this.kidsInfo.id_no.length === 0 && event.keyCode > 48 && event.keyCode <= 57) {
    // console.log('第1位ok')
  } else if (this.kidsInfo.id_no.length >= 1 && this.kidsInfo.id_no.length <= 17 && event.keyCode >= 48 &&           event.keyCode <= 57) {
    // console.log('第2位到第17位ok')
  } else if ((this.kidsInfo.id_no.length === 17 && event.keyCode >= 48 && event.keyCode <= 57) || (this.kidsInfo.id_no.length === 17 && event.keyCode === 88) || (this.kidsInfo.id_no.length === 17 && event.keyCode === 120)) {
    // console.log('第18位ok')
  } else {
    // 非法
    // console.log('非法')
    event.preventDefault()
  }
}

安卓监听会有坑
通过监听具体变量

'kidsInfo.id_no' (newVal, oldVal) {
  // 安卓监听身份证  newSingleIdNo为判断新增字符方法
  if (newVal.length === 1 && (isNaN(this.newSingleIdNo(newVal, newVal.length)) || newVal === '0')) {
    this.kidsInfo.id_no = ''
  } else if ((newVal.length > 1 && newVal.length < 18) && isNaN(this.newSingleIdNo(newVal, newVal.length))) {
    this.kidsInfo.id_no = this.kidsInfo.id_no.substr(0, this.kidsInfo.id_no.length - 1)
  } else if (newVal.length === 18 && isNaN(this.newSingleIdNo(newVal, newVal.length)) && this.newSingleIdNo(newVal, newVal.length) !== 'x' && this.newSingleIdNo(newVal, newVal.length) !== 'X') {
    this.kidsInfo.id_no = this.kidsInfo.id_no.substr(0, this.kidsInfo.id_no.length - 1)
  } else if (this.newSingleIdNo(newVal, newVal.length) === ' ') {
    this.kidsInfo.id_no = this.kidsInfo.id_no.substr(0, this.kidsInfo.id_no.length - 1)
  }
}
......
newSingleIdNo (id, length) {
  let singleNum
  singleNum = id.substr(length - 1, 1)
  return singleNum
}

相关文章

网友评论

      本文标题:js 身份证动态验证相关 Vue

      本文链接:https://www.haomeiwen.com/subject/vcyocqtx.html