js 精确验证身份证(地址编码、出生日期、校验位验证)
2024-10-16 01:46:28
//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
function IdentityCodeValid(code) {
var city={:"北京",:"天津",:"河北",:"山西",:"内蒙古",:"辽宁",:"吉林",:"黑龙江 ",:"上海",:"江苏",:"浙江",:"安徽",:"福建",:"江西",:"山东",:"河南",:"湖北 ",:"湖南",:"广东",:"广西",:"海南",:"重庆",:"四川",:"贵州",:"云南",:"西藏 ",:"陕西",:"甘肃",:"青海",:"宁夏",:"新疆",:"台湾",:"香港",:"澳门",:"国外 "};
var tip = "";
var pass= true;
//验证身份证格式(6个地区编码,8位出生日期,3位顺序号,1位校验位)
if(!code || !/^\d{}(||)?\d{}([-]|[0])([-]|[]\d|[])\d{}(\d|X)$/i.test(code)){
tip = "身份证号格式错误";
pass = false;
} else if(!city[code.substr(,)]){
tip = "地址编码错误";
pass = false;
}
else{
//18位身份证需要验证最后一位校验位
if(code.length == ){
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [ , , , , , , , , , , , , , , , , ];
//校验位
var parity = [ , , 'X', , , , , , , , ];
var sum = ;
var ai = ;
var wi = ;
for (var i = ; i < ; i++)
{
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
var last = parity[sum % ];
if(parity[sum % ] != code[]){
tip = "校验位错误";
pass =false;
}
}
}
if(!pass) alert(tip);
return pass;
}
使用这个方法,把身份证号码传进去。就可以判断你的身份证是否合法了。
var c = '130981199312253466';//这个是待验证的身份证号码
var res= IdentityCodeValid(c);//这里是调用验证的方法
欢迎关注下面的公众号,进一步技术交流:
最新文章
- SQL Server Update 语句使用Nolock 语法
- KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
- C#窗体 自定义控件
- 有一个无效 SelectedValue,因为它不在项目列表中。
- 如何修改SVN中的用户名和密码
- 接口速度慢问题查找(TTFB时间长)
- 【Alpha】Daily Scrum Meeting——Day6
- NOIP2014无线网络发射器选址改编1
- 标准的SQL语句类型
- 获取JSON对象的属性值
- mybatis快速入门(六)
- squid 透明代理配置
- 关于前缀和,A - Hamming Distance Sum
- Laravel attribute casting 导致的 Indirect modification of overloaded property
- LCT摘要
- Reactor与Proactor比较
- android 的build.gradle 的API手册
- Activity服务类-4 HistoryService服务类
- Java8简明学习之Lambda表达式
- 如何保障Go语言基础代码质量?
热门文章
- LeetCode算法题-Symmetric Tree(Java实现)
- bs4 解析 以及用法
- UVA 11645 - Bits(数论+计数问题)
- CSAPP:第一章计算机系统漫游
- icon图标库记录
- @ModelAttribute
- ActiveMQ安装配置及使用 转发 https://www.cnblogs.com/hushaojun/p/6016709.html
- mysql之grant权限说明
- day26 Python isinstance和issubclass
- 破解爱奇艺优酷等Vip视频