vue 身份证18位验证
1 2 3 4 5 6 7 | <el-row> <el-col :span= "24" > <el-form-item label= "投诉人身份证号" prop= "idCard" > <el-input v-model= "complaintForm.idCard" onkeyup= "this.value=this.value.replace(/[^\X0-9]/g, '')" placeholder= "请输入身份证号(数字0-9 X为大写)" style= "width: 300px;" :disabled= "isDetails" ></el-input> </el-form-item> </el-col> </el-row><br><br>onkeyup= "this.value=this.value.replace(/[^\X0-9]/g, '')" 这句话就是说只能输入汉字 输入别的会直接删除掉 |
封装一个js 在每个页面都可以调用; 引用部分就不介绍了 直接上js代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | export function isIdentityId(identityId) { var patrn = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/; //长度或格式校验 //地区校验 var 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: "国外" }; // 出生日期验证 var sBirthday = ( identityId.substr(6, 4) + "-" + Number(identityId.substr(10, 2)) + "-" + Number(identityId.substr(12, 2)) ).replace(/-/g, "/" ), d = new Date(sBirthday) // 身份证号码校验 最后4位 包括最后一位的数字/字母X var sum = 0, weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], codes = "10X98765432" ; for ( var i = 0; i < identityId.length - 1; i++) { sum += identityId[i] * weights[i]; } var last = codes[sum % 11]; //计算出来的最后一位身份证号码 var errorMsg = '' ; if (identityId === '' ) { errorMsg = "身份证号不能为空" } else if (!patrn.exec(identityId)) { errorMsg = "你输入的身份证长度或格式错误" } else if (!aCity[parseInt(identityId.substr(0, 2))]) { errorMsg = "你的身份证地区非法" } else if (sBirthday != d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()) { errorMsg = "身份证上的出生日期非法" } else if (identityId[identityId.length - 1] != last) { errorMsg = "你输入的身份证号非法" } return errorMsg; } |
在data里面引入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | data() { var icdId = (rule, value, callback) => { var errorMsg = isIdentityId(value); if (errorMsg != "" ) { callback( new Error(errorMsg)); } }; } phoneNum: [ { required: true , message: "请填写投诉人手机号" , trigger: "blur" }, { validator: isPhone, trigger: "blur" }, ], |
希望对大家有所帮助 校验真实性最好的方法是接入公安系统
1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了