//身份证号合法性验证
//支持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);//这里是调用验证的方法

欢迎关注下面的公众号,进一步技术交流:

最新文章

  1. SQL Server Update 语句使用Nolock 语法
  2. KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
  3. C#窗体 自定义控件
  4. 有一个无效 SelectedValue,因为它不在项目列表中。
  5. 如何修改SVN中的用户名和密码
  6. 接口速度慢问题查找(TTFB时间长)
  7. 【Alpha】Daily Scrum Meeting——Day6
  8. NOIP2014无线网络发射器选址改编1
  9. 标准的SQL语句类型
  10. 获取JSON对象的属性值
  11. mybatis快速入门(六)
  12. squid 透明代理配置
  13. 关于前缀和,A - Hamming Distance Sum
  14. Laravel attribute casting 导致的 Indirect modification of overloaded property
  15. LCT摘要
  16. Reactor与Proactor比较
  17. android 的build.gradle 的API手册
  18. Activity服务类-4 HistoryService服务类
  19. Java8简明学习之Lambda表达式
  20. 如何保障Go语言基础代码质量?

热门文章

  1. LeetCode算法题-Symmetric Tree(Java实现)
  2. bs4 解析 以及用法
  3. UVA 11645 - Bits(数论+计数问题)
  4. CSAPP:第一章计算机系统漫游
  5. icon图标库记录
  6. @ModelAttribute
  7. ActiveMQ安装配置及使用 转发 https://www.cnblogs.com/hushaojun/p/6016709.html
  8. mysql之grant权限说明
  9. day26 Python isinstance和issubclass
  10. 破解爱奇艺优酷等Vip视频