vue+element 身份证号码以及有效性校验 适用 15位 或18位
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位相关推荐
- Java 从身份证号码中获取出生日期、性别、年龄(15位和18位)
项目场景: 提示:这次做项目的时候遇到一个工具,整理出来以后可以直接使用 问题描述:给一个String 类型的 身份证号码,需要从这串数字中获取出生日期.性别.年龄 身份证号码分为 15 位 和18 ...
- JS校验身份证号码的有效性
2019独角兽企业重金招聘Python工程师标准>>> function validateIdCard(idCard) {//15位和18位身份证号码的正则表达式var regIdC ...
- 【转载】 身份证号码校验(15位和18位都可以)
转载自: 开源中国社区 面向对象的15位.18位中国大陆身份证号码解析.验证工具 import java.text.ParseException; import java.text.Simple ...
- 身份证号码的严格校验(非正则)
文章目录 前言 序言 一.身份证号码介绍 1.身份证号码组成 2.省份证号码中的名词解释 1.区域代码(地址码) 2.生日 3.顺序码 4.校验码 总结 二.校验码计算 1.公式拆解 2.运算 三.实 ...
- 身份证号码编码方法及校验算法
身份证号码编码方法及校验算法 1 身份证号码的字段构成: 地址码 身份证前六位,表示户口所在县(市.旗.区)的行政区划代码. 生日码 身份证第七至第十四位,表示出生的年.月.日. 顺序码 身份证十五到 ...
- 身份证号码的合法性校验
javascript版本的 身份证号码的合法性校验 /** * 检验身份证号码 * 15位:ddddddyymmddxxp * 18位:ddddddyyyymmddxxxy * @param card ...
- js中15位及18位身份证号码的校验
15位身份证结构: 地区代码(6位),年(2位)月(2位)日(2位),顺序码(3位,最后1位偶数代表女,奇数代表男) 18位身份证结构: 地区代码(6位),年(4位)月(2位)日(2位),顺序码(3位 ...
- 使用Java编写Hive的UDF实现身份证号码校验及15位升级18位
使用Java编写Hive的UDF实现身份证号码校验及15位升级18位 背景 在数仓项目中,有时候会根据身份证信息做一些取数filter或者条件判断的相关运算进而获取到所需的信息.古人是用Oracle做 ...
- vue+element项目 手机号、邮箱校验 保姆级教程
vue+element项目 手机号.邮箱校验 保姆级教程 (包含注意点) 先看案例:在vue+element项目中给表单中的手机号和邮箱做校验 标题先说注意点 prop黄色框框起来的一定要有 废话不多 ...
最新文章
- TCExam开源在线考试系统
- AHS of FCGRC 停课 Day 4
- 看完你就晓得正向代理和反向代理了!
- 用 Natasha 写个类型调用的架子
- 学习实践 - 收藏集 - 掘金
- 实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!
- 宿州学院省二计算机什么时候报名,宿州学院2017年9月全国计算机等级考试报名时间及报名网址公布...
- 视觉SLAM笔记(23) 图像
- Python使用组合、排列和动态规划算法求解0-1背包问题
- c语言入门数据类型详解,C语言的基本数据类型入门教程
- Egret之粒子系统
- 第一次作业-四则运算
- JavaScript优美的特性
- 数据--第42课 - 图的遍历
- (转)AI搅局金融业!传奇投资人“都铎·琼斯”真金白银来押注
- 2021FME博客大赛 —— FME在道路实景建模中的应用研究
- 思科arp欺骗攻击,cdp攻击,DHCP攻击实验命令笔记
- 注意力机制-CA注意力-Coordinate attention
- 字符串处理工具类,主要是针对内容txt对标点符号进行处理-java处理字符串符号工具类实现逻辑
- 初次见面——C语言的整体把握【小白福音】