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位身份证的加权求和校验以及最后一位校验码的匹配。确保输入的身份证号码符合国家规定。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Dify
AI应用
Agent编排
Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

1903





