var idNumberRule= (rule, value, callback) => {
const reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
if (this.FormData.idnum === '' || this.FormData.idnum === null) {
callback()
} else if (reg.test(this.FormData.idnum)) {
if (this.FormData.idnum.length === 18) {
const idCardWi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 将前17位加权因子保存在数组里
const idCardY = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2] // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
let idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
for (var i = 0; i < 17; i++) {
idCardWiSum += this.FormData.idnum.substring(i, i + 1) * idCardWi[i]
}
const idCardMod = idCardWiSum % 11// 计算出校验码所在数组的位置
const idCardLast = this.FormData.idnum.substring(17)// 得到最后一位身份证号码
// 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
if (idCardMod === 2) {
if (idCardLast === 'X' || idCardLast === 'x') {
callback()
} else {
callback(new Error('请输入有效合法的身份证号码'))
}
} else {
// 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
if (parseInt(idCardLast) === idCardY[idCardMod]) {
callback()
} else {
callback(new Error('请输入有效合法的身份证号码'))
}
}
} else {
callback()
}
} else {
callback(new Error('请输入有效合法的身份证号码'))
}
}
身份证号码合法性校验 前端
身份证号码验证前端实现
最新推荐文章于 2024-05-02 15:39:32 发布
本文介绍了如何在前端使用JavaScript进行身份证号码的合法性校验,包括正则表达式验证、18位身份证的加权求和校验以及最后一位校验码的匹配。确保输入的身份证号码符合国家规定。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Langchain-Chatchat
AI应用
Langchain
Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

1903





