身份证号码格式验证
具体验证方式详情见章未知乎链接。
身份证号码格式验证,js代码
1 //效验省份证号码格式 2 function IDCheck(id){ 3 var r=new RegExp("^[1-9](\\d{5})(19|20)(\\d{2})((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)(\\d{3})(\\d|X|x)$"); 4 if(!r.test(id)) 5 return false; 6 q=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//加权乘数 7 x=["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];//效验位数字 8 p=[]; 9 s=0; 10 q.forEach((v,i)=>{ 11 p[i]=v*parseInt(id.charAt(i)); 12 s=s+p[i]; 13 //console.log(v,id.charAt(i)) 14 }) 15 console.log(s%11,x[s%11]) 16 return x[s%11]==id.charAt(17) 17 }
如果还要效验日期的,也可以加入。
一些正则表达式
// 18位身份证号码正则 string IDCard18_REGEX = "^[1-9](\\d{5})(19|20)(\\d{2})((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)(\\d{3})(\\d|X|x)$"; // 15位身份证号码正则 string IDCard15_REGEX = "^[1-9](\\d{5})(\\d{2})((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)(\\d{3})$"; // 平年日期正则 string OrdinaryYear_REGEX = "(((0[13578])|10|12)(([0-2][1-9])|10|20|30|31)|(((0[469])|11)(([0-2][1-9])|10|20|30))|(02(([0-2][1-8])|09|19|10|20)))"; // 闰年日期正则 string LeapYear_REGEX = "(((0[13578])|10|12)(([0-2][1-9])|10|20|30|31)|(((0[469])|11)(([0-2][1-9])|10|20|30))|(02(([0-2][1-9])|10|20)))"; // 1-17位相乘因子数组 int[] FACTOR = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; // 18位随机码数组 char[] RANDOM = ['1','0','X','9','8','7','6','5','4','3','2'];
参考:
https://www.zhihu.com/question/336417424
https://blog.csdn.net/qq_35358091/article/details/83997426(话说,百度搜的都是csdn的,cnblog的不常见,不喜欢csdn但是他的搜索优化真强化过啊)
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
原文链接:https://www.cnblogs.com/lzpong/p/17175132.html
--- auth:lzpong
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!