vue 验证公民身份证号 并 自动 获取 性别、年龄、生日

第一种方式:

<template><el-form :model="baseInfo" ref="baseForm" :rules="baseFormRules" label-width="110px" class="departmentDetail-ruleForm"><el-form-item label="身份证号:" prop="idCardNo">    <el-input v-model="baseInfo.idCardNo" style="width:60%" /></el-form-item></el-form></template><script>export default {data(){return {baseFormRules: {  idCardNo: [{ required: true, message: '身份证号不能为空', trigger: 'blur' },{ validator: this.checkCard, trigger: 'blur' }],},baseInfo: {},area: {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:"国外"},Wi: [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 ],ValideCode: [1,0,'X',9,8,7,6,5,4,3,2]}},methods: {// 检测身份证checkCard() {if(!this.baseInfo.idCardNo) return;let CardId = this.baseInfo.idCardNo;if(CardId.length == 15) {if(this.is15Card(CardId)) {this.go(CardId.length);}else {return this.$message({type: 'error', message: '您的身份证号有误!请输入你真实的身份证号,确保你的利益得到保障!'});}} else if (CardId.length == 18) {let a_iden = CardId.split("");if (this.is18Card(CardId) && this.is18CardEnd(a_iden) ) {  // && this.is18CardEnd(a_iden)this.go(CardId.length);return this.is18Card(CardId);}else {return this.$message({type: 'error', message: '您的身份证号有误!请输入你真实的身份证号,确保你的利益得到保障!'});}} else {return this.$message({type: 'error', message: '您的身份证号有误!请输入你真实的身份证号,确保你的利益得到保障!'});}},// 检测18位身份证号最后一位是否符合要求is18CardEnd(a_idCard) {let sum = 0;if (a_idCard[17].toLowerCase() == 'x') {a_idCard[17] = 10;}for ( var i = 0; i < 17; i++) {sum += this.Wi[i] * a_idCard[i];}let valCodePosition = sum % 11;if (a_idCard[17] == this.ValideCode[valCodePosition]) {return true;} else {return false;}},// 验证最后一位校正码is18Card(idCard18){let year =  idCard18.substring(6,10);let month = idCard18.substring(10,12);let day = idCard18.substring(12,14);let temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}},is15Card(idCard15){let year =  idCard15.substring(6,8);let month = idCard15.substring(8,10);let day = idCard15.substring(10,12);let temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1 ||temp_date.getDate()!=parseFloat(day)) {return false;}else{return true;}},// 实现自动生成生日,性别,年龄go(val) {let iden = this.baseInfo.idCardNo;let sex = null;let birth = null;let myDate = new Date();let month = myDate.getMonth() + 1;let day = myDate.getDate();let age = 0;if(val===18){age = myDate.getFullYear() - iden.substring(6, 10) - 1;sex = iden.substring(16,17);birth = iden.substring(6,10)+"-"+iden.substring(10,12)+"-"+iden.substring(12,14);if (iden.substring(10, 12) < month || iden.substring(10, 12) == month && iden.substring(12, 14) <= day) age++;}if(val===15){age = myDate.getFullYear() - iden.substring(6, 8) - 1901;sex = iden.substring(13,14);birth = "19"+iden.substring(6,8)+"-"+iden.substring(8,10)+"-"+iden.substring(10,12);if (iden.substring(8, 10) < month || iden.substring(8, 10) == month && iden.substring(10, 12) <= day) age++;}if(sex%2 === 0)sex = '女';elsesex = '男';this.baseInfo.sex = sex;this.baseInfo.age = age;this.baseInfo.birthday = birth;this.baseInfo.birthplace = this.area[iden.substring(0,2)];console.log(this.baseInfo)}}}
</script><style></style>

第二种方式:

<template><el-form :model="baseInfo" ref="baseForm" :rules="baseFormRules" label-width="110px" class="departmentDetail-ruleForm"><el-form-item label="身份证号:" prop="idCardNo">    <el-input v-model="baseInfo.idCardNo" style="width:60%" /></el-form-item></el-form></template><script>export default {data(){return {baseFormRules: {  idCardNo: [{ required: true, message: '身份证号不能为空', trigger: 'blur' },{ validator: this.validID, trigger: 'blur' }],},baseInfo: {},area: {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:"国外"},Wi: [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 ],ValideCode: [1,0,'X',9,8,7,6,5,4,3,2]}},methods: {// 身份证验证validID(rule,value,callback){// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;if (reg.test(value)) {this.go(value.length);callback()} else {callback(new Error('身份证号码不正确'))}},// 实现自动生成生日,性别,年龄go(val) {let iden = this.baseInfo.idCardNo;let sex = null;let birth = null;let myDate = new Date();let month = myDate.getMonth() + 1;let day = myDate.getDate();let age = 0;if(val===18){age = myDate.getFullYear() - iden.substring(6, 10) - 1;sex = iden.substring(16,17);birth = iden.substring(6,10)+"-"+iden.substring(10,12)+"-"+iden.substring(12,14);if (iden.substring(10, 12) < month || iden.substring(10, 12) == month && iden.substring(12, 14) <= day) age++;}if(val===15){age = myDate.getFullYear() - iden.substring(6, 8) - 1901;sex = iden.substring(13,14);birth = "19"+iden.substring(6,8)+"-"+iden.substring(8,10)+"-"+iden.substring(10,12);if (iden.substring(8, 10) < month || iden.substring(8, 10) == month && iden.substring(10, 12) <= day) age++;}if(sex%2 === 0)sex = '女';elsesex = '男';this.baseInfo.sex = sex;this.baseInfo.age = age;this.baseInfo.birthday = birth;this.baseInfo.birthplace = this.area[iden.substring(0,2)];console.log(this.baseInfo)}}}
</script><style></style>

vue 验证公民身份证号 并 自动 获取 性别、年龄、生日相关推荐

  1. vue 验证公民身份证号 并 自动 获取 性别、年龄、生日

    vue 验证公民身份证号 并 自动 获取 性别.年龄.生日 第一种方式: <template><el-form :model="baseInfo" ref=&qu ...

  2. java验证公民身份证真实性

    通过一定的算法规则校验身份证的真实性,不多说,上代码: package examples.cardId; import java.util.Scanner; /**  * 公民身份号码是特征组合码,由 ...

  3. 根据身份证号获取性别和生日

    function tools_calcIdentiyInfo(str) { let sex = parseInt(str.substr(16, 1)) % 2 == 1 ? '男' : '女'; le ...

  4. input输入身份证号 实现自动生成个人信息

    input输入身份证号 实现自动生成个人信息 <el-form-item label="身份证号:" prop="identityCard">< ...

  5. sql提取身份证号信息--省市区县,年龄分组

    sql提取身份证号信息--省市区县,年龄分组 insert into test009 select t8.name ,t8.mobile ,t8.idcard ,t8.birthday ,t8.age ...

  6. 手机号 ,邮箱,固定电话js验证,身份证号(正则表达式)

    固定电话: var myreg =/^((1[0-9]{10})|(((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?))$/; ...

  7. js技术输入框中输入身份证号自动带出年龄,生日,性别

    目录 1.分析: 2.页面设计: 3.js技术让我们的输入框回显数据: 4.页面展示结果: 1.分析: 1.问题场景:在写项目的时候遇到了这个问题自己觉得挺有意思的在这里我更大家分享一下 2.问题分析 ...

  8. jquery通过身份证号获取性别和生日

    项目中有遇到需要根据用户输入的身份证号码自动获取出身日期及性别.在网上搜了一些方法在项目中使用.现整理记录一下,方便后面使用. card.js代码,用于判断身份证号格式是否正确(主要是长度和出身日期) ...

  9. python身份验证(身份证号中提取出生日期及性别)。

    name=input("请输入姓名:") sfz=input("请输入你的的身份证号:") year=sfz[6:10] //出生年份 month=sfz[10 ...

最新文章

  1. 李子柒爆红:既然做直播能年薪过亿, 为何还要努力高考?
  2. 用Python分析北上广深租房情况,租房时优先考虑哪些因素?
  3. 那时刚毕业的我,曾参与惊心动魄 3Q 大战
  4. Spring.NET学习笔记9——打造简易的依赖注入框架(练习篇) Level 100
  5. 解方程 2014NOIP提高组 (数学)
  6. boost::callable_traits的remove_member_cv_t的测试程序
  7. 牛客网暑期ACM多校训练营(第一场)J Different Integers
  8. 同步模式下的端口映射程序
  9. 现代计算机模型要求程序在执行,大学计算机基础考试考点.doc
  10. axi4协议的乱序_一篇文章读懂读透FPGA AXI4 总线协议
  11. 【OpenCV入门指南】第二篇 缩放图像
  12. fortran95数组输出练习感悟
  13. ocr小白入门CRNN
  14. IT人才外包服务的好处?
  15. NYOJ-47 过河问题
  16. 将年月日成一年中第几天
  17. Word中替换手动换行符的处理
  18. 笔记连载 | Day15【按键检测、按键消抖】 【原理及verilog仿真】篇
  19. 计算机毕设(附源码)JAVA-SSM绩效考核管理系统
  20. java 三维_java之三维数组

热门文章

  1. 基于深度学习的时间序列分类[含代码]
  2. 三星 GALAXY Note 4 柏林发布会
  3. 会议记录管理系统(6) - 查找会议记录模块设计
  4. facebook女程序员_Facebook的新“ Messenger Kids”应用程序对我的孩子安全吗?
  5. ABAP ALV LVC模板
  6. matlab小船渡河物理模型,高中物理 | 小船渡河模型和斜拉船模型
  7. 微搭典型应用需求梳理
  8. linux触摸板设置密码程序6,Linux下Synaptics笔记本触摸板的配置
  9. [亲测,可用] EXCEL数字转文本,文本转数字后需要双击,才能变成想要的格式,学会这个技能,再也不用一个个单元格点击了
  10. Unity3D教程:回合制游戏实现 1