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 相关文章推荐
给网站上的广告“加速”显示的方法
Apr 08 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
JQuery的AJAX实现文件下载的小例子
May 15 Javascript
JavaScript自动设置IFrame高度的小例子
Jun 08 Javascript
webapp框架AngularUI的demo改造之路
Dec 21 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
纯javascript判断查询日期是否为有效日期
Aug 24 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
react 应用多入口配置及实践总结
Oct 17 Javascript
vue 引用自定义ttf、otf、在线字体的方法
May 09 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
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python杀死一个线程的方法
2015/09/06 Python
关于python的list相关知识(推荐)
2017/08/30 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
深入了解NumPy 高级索引
2020/07/24 Python
python中的yield from语法快速学习
2020/11/06 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
个人安全承诺书
2014/05/22 职场文书
IT工程师岗位职责
2014/07/04 职场文书
委托证明范本
2014/11/25 职场文书
老公婚前保证书
2015/02/28 职场文书
2016年端午节寄语
2015/12/04 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
Python进程间的通信之语法学习
2022/04/11 Python