data () {let idCardValidity = (rule, code, callback) => {var city = { 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: "国外 " };var tip = ""var pass = trueif (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {tip = "身份证号格式错误"pass = false;} else if (!city[code.substr(0, 2)]) {tip = "地址编码错误"pass = false} else {// 18位身份证需要验证最后一位校验位if (code.length === 18) {code = code.split('')// ∑(ai×Wi)(mod 11)// 加权因子var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]// 校验位var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]var sum = 0var ai = 0var wi = 0for (var i = 0; i < 17; i++) {ai = code[i]wi = factor[i]sum += ai * wi}var last = parity[sum % 11];if (parity[sum % 11] != code[17]) {tip = "校验位错误"pass = false}}}if (!pass) {callback(new Error(tip))} else {callback()}// if (!pass) alert(tip)// return pass}return {personInfo: {idCard: "",},rules: {idCard: [{ required: true, message: '请输入证件号', trigger: 'blur' },{pattern: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,message: '请输入正确的证件号'},{ validator: idCardValidity, trigger: 'blur' }],}}},

1.规则方法写在 data里 return之前。

2. 身份证有效性校验规则来源与百度

校验公示:∑(ai×Wi)(mod 11)

https://baike.baidu.com/item/%E6%9C%89%E6%95%88%E8%BA%AB%E4%BB%BD%E8%AF%81%E4%BB%B6/5039723?fr=aladdin。

vue+element 身份证号码以及有效性校验 适用 15位 或18位相关推荐

  1. Java 从身份证号码中获取出生日期、性别、年龄(15位和18位)

    项目场景: 提示:这次做项目的时候遇到一个工具,整理出来以后可以直接使用 问题描述:给一个String 类型的 身份证号码,需要从这串数字中获取出生日期.性别.年龄 身份证号码分为 15 位 和18 ...

  2. JS校验身份证号码的有效性

    2019独角兽企业重金招聘Python工程师标准>>> function validateIdCard(idCard) {//15位和18位身份证号码的正则表达式var regIdC ...

  3. 【转载】 身份证号码校验(15位和18位都可以)

    转载自: 开源中国社区    面向对象的15位.18位中国大陆身份证号码解析.验证工具 import java.text.ParseException; import java.text.Simple ...

  4. 身份证号码的严格校验(非正则)

    文章目录 前言 序言 一.身份证号码介绍 1.身份证号码组成 2.省份证号码中的名词解释 1.区域代码(地址码) 2.生日 3.顺序码 4.校验码 总结 二.校验码计算 1.公式拆解 2.运算 三.实 ...

  5. 身份证号码编码方法及校验算法

    身份证号码编码方法及校验算法 1 身份证号码的字段构成: 地址码 身份证前六位,表示户口所在县(市.旗.区)的行政区划代码. 生日码 身份证第七至第十四位,表示出生的年.月.日. 顺序码 身份证十五到 ...

  6. 身份证号码的合法性校验

    javascript版本的 身份证号码的合法性校验 /** * 检验身份证号码 * 15位:ddddddyymmddxxp * 18位:ddddddyyyymmddxxxy * @param card ...

  7. js中15位及18位身份证号码的校验

    15位身份证结构: 地区代码(6位),年(2位)月(2位)日(2位),顺序码(3位,最后1位偶数代表女,奇数代表男) 18位身份证结构: 地区代码(6位),年(4位)月(2位)日(2位),顺序码(3位 ...

  8. 使用Java编写Hive的UDF实现身份证号码校验及15位升级18位

    使用Java编写Hive的UDF实现身份证号码校验及15位升级18位 背景 在数仓项目中,有时候会根据身份证信息做一些取数filter或者条件判断的相关运算进而获取到所需的信息.古人是用Oracle做 ...

  9. vue+element项目 手机号、邮箱校验 保姆级教程

    vue+element项目 手机号.邮箱校验 保姆级教程 (包含注意点) 先看案例:在vue+element项目中给表单中的手机号和邮箱做校验 标题先说注意点 prop黄色框框起来的一定要有 废话不多 ...

最新文章

  1. TCExam开源在线考试系统
  2. AHS of FCGRC 停课 Day 4
  3. 看完你就晓得正向代理和反向代理了!
  4. 用 Natasha 写个类型调用的架子
  5. 学习实践 - 收藏集 - 掘金
  6. 实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!
  7. 宿州学院省二计算机什么时候报名,宿州学院2017年9月全国计算机等级考试报名时间及报名网址公布...
  8. 视觉SLAM笔记(23) 图像
  9. Python使用组合、排列和动态规划算法求解0-1背包问题
  10. c语言入门数据类型详解,C语言的基本数据类型入门教程
  11. Egret之粒子系统
  12. 第一次作业-四则运算
  13. JavaScript优美的特性
  14. 数据--第42课 - 图的遍历
  15. (转)AI搅局金融业!传奇投资人“都铎·琼斯”真金白银来押注
  16. 2021FME博客大赛 —— FME在道路实景建模中的应用研究
  17. 思科arp欺骗攻击,cdp攻击,DHCP攻击实验命令笔记
  18. 注意力机制-CA注意力-Coordinate attention
  19. 字符串处理工具类,主要是针对内容txt对标点符号进行处理-java处理字符串符号工具类实现逻辑
  20. 初次见面——C语言的整体把握【小白福音】

热门文章

  1. 广西师范学院计算机论文答辩,广西师范大学职业技术师范学院硕士学位论文答辩公告(第一批)...
  2. mysqldump 忽略视图_mysqldump 使用说明
  3. 上传图片到七牛云(前端和后端)
  4. solidity 操作符01
  5. 食用油详细 制造工艺、等级划分、国家标准号和注意事项
  6. [日推荐]『班级成绩管理』班主任必配装备
  7. ts有什么用、好处、与js区别
  8. Linux dev目录详解
  9. 如何利用三极管实现电平转换
  10. 1041. 困于环中的机器人