JS实现的验证身份证及获取地区功能示例


Posted in Javascript onJanuary 16, 2017

本文实例讲述了JS实现的验证身份证及获取地区功能。分享给大家供大家参考,具体如下:

这里的代码可以用来验证身份证号,并且根据身份证号来判断是哪个省份及性别

代码示例:

<head >
  <title></title>
  <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
</head>
<body>
  <form id="form1" >
  <label>
    身份证号:</label><input type="text" id="txtId" />
  <input type="button" value="验证" onclick="CheckId()" />
  </form>
</body>
</html>
<script type="text/javascript">
  //定义地区数组
  var CityArray = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }
  //验证身份证及返回地区、出生年月、性别
  function CheckIdCard(sId) {
    if (sId.length == 15) {
      sId = sId.replace(/([\d]{6})(\d{9})/, "$119$2x");
    }
    var iSum = 0
    var info = ""
    if (!/^\d{17}(\d|x)$/i.test(sId)) return "非法的身份证号";
    sId = sId.replace(/x$/i, "a");
    if (CityArray[parseInt(sId.substr(0, 2))] == null) return "Error:非法地区";
    sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
    var d = new Date(sBirthday.replace(/-/g, "/"))
    if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) return "Error:非法生日";
    for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11)
    if (iSum % 11 != 1) return "Error:非法证号";
    return CityArray[parseInt(sId.substr(0, 2))] + "," + sBirthday + "," + (sId.substr(16, 1) % 2 ? "男" : "女")
  }
  //调用验证方法
  function CheckId() {
    var id = $("#txtId").val();
    if (id != "") {
      alert(CheckIdCard(id));
    }
  }
</script>
Javascript 相关文章推荐
Tab页界面 用jQuery及Ajax技术实现(php后台)
Oct 12 Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 Javascript
js setTimeout opener的用法示例详解
Oct 23 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
jQuery中DOM常见操作实例小结
Aug 01 jQuery
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 Javascript
JavaScript严格模式详解
Jan 16 #Javascript
关于iframe跨域POST提交的方法示例
Jan 15 #Javascript
JavaScript中利用for循环遍历数组
Jan 15 #Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 #Javascript
JavaScript调试的多个必备小Tips
Jan 15 #Javascript
使用Promise链式调用解决多个异步回调的问题
Jan 15 #Javascript
js实现密码强度检验
Jan 15 #Javascript
You might like
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
vue debug 二种方法
2018/09/16 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
浅谈Python单向链表的实现
2015/12/24 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
幼儿园国庆节活动方案
2014/02/01 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
高中学生评语大全
2014/04/25 职场文书
体育比赛口号
2014/06/09 职场文书
防震减灾主题班会
2015/08/14 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
SQL Server删除表中的重复数据
2022/05/25 SQL Server