我是靠谱客的博主 霸气小蘑菇,最近开发中收集的这篇文章主要介绍vue的身份证校验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

标题 vue的身份证校验

1.data中的数据

const isCardID = (rule, value, callback) => {
      console.log(value)
      if (!/(^d{15}$)|(^d{17}(d|X|x)$)/.test(value)) {
        callback(new Error('你输入的身份证长度或格式错误'))
      }
      // 身份证城市
      const aCity = {
        11: '北京',
        12: '天津',
        13: '河北',
        14: '山西',
        15: '内蒙古',
        21: '辽宁',
        22: '吉林',
        23: '黑龙江',
        31: '上海',
        32: '江苏',
        33: '浙江',
        34: '安徽',
        35: '福建',
        36: '江西',
        37: '山东',
        41: '河南',
        42: '湖北',
        43: '湖南',
        44: '广东',
        45: '广西',
        46: '海南',
        50: '重庆',
        51: '四川',
        52: '贵州',
        53: '云南',
        54: '西藏',
        61: '陕西',
        62: '甘肃',
        63: '青海',
        64: '宁夏',
        65: '新疆',
        71: '台湾',
        81: '香港',
        82: '澳门',
        91: '国外',
      }
      if (!aCity[parseInt(value.substr(0, 2))]) {
        callback(new Error('你的身份证地区非法'))
      }

      // 出生日期验证
      const sBirthday = (value.substr(6, 4) + '-' + Number(value.substr(10, 2)) + '-' + Number(value.substr(12, 2))).replace(
        /-/g,
        '/'
      )
      const d = new Date(sBirthday)
      if (sBirthday !== d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()) {
        callback(new Error('身份证上的出生日期非法'))
      }

      // 身份证号码校验
      let sum = 0
      const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
      const codes = '10X98765432'
      for (let i = 0; i < value.length - 1; i++) {
        sum += value[i] * weights[i]
      }
      const last = codes[sum % 11] // 计算出来的最后一位身份证号码
      if (value[value.length - 1] !== last) {
        callback(new Error('你输入的身份证号非法'))
      }

      callback()
    }

2.放在校验中的代码

rules:{
	idNo: [
		{ validator: isCardID, trigger: 'blur' }
	],
}

最后

以上就是霸气小蘑菇为你收集整理的vue的身份证校验的全部内容,希望文章能够帮你解决vue的身份证校验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部