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

 更新时间:2017年01月16日 08:44:13   作者:深海蓝山  
这篇文章主要介绍了JS实现的验证身份证及获取地区功能,结合实例形式分析了JS字符串、数组及正则操作相关技巧,需要的朋友可以参考下

本文实例讲述了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>

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • js左侧多级菜单动态的解决方案

    js左侧多级菜单动态的解决方案

    实现的效果很简单,就是点一下显示,再点一下就隐藏,只不过是多了几级的问题。好,现在来说说我的设计思路,首先从第一级别开始,添加如下代码
    2010-02-02
  • Bootstrap CSS布局之列表

    Bootstrap CSS布局之列表

    这篇文章主要为大家详细介绍了Bootstrap CSS布局之列表的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • uniapp u-picker多列用法以及设置默认选中值

    uniapp u-picker多列用法以及设置默认选中值

    uview组件库u-picker组件可能很多人不熟悉,下面这篇文章主要给大家介绍了关于uniapp u-picker多列用法以及设置默认选中值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 原生JS实现汇率转换功能代码实例

    原生JS实现汇率转换功能代码实例

    这篇文章主要介绍了原生JS实现汇率转换功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 原生js实现随机点名

    原生js实现随机点名

    这篇文章主要为大家详细介绍了原生js实现随机点名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • JavaScript变速动画函数封装添加任意多个属性

    JavaScript变速动画函数封装添加任意多个属性

    这篇文章主要介绍了JavaScript变速动画函数封装添加任意多个属性 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • ECMA5数组的新增方法有哪些及forEach()模仿实现

    ECMA5数组的新增方法有哪些及forEach()模仿实现

    这篇文章主要介绍了ECMA5数组的新增方法有哪些及forEach()模仿实现,需要的朋友可以参考下
    2015-11-11
  • js Element Traversal规范中的元素遍历方法

    js Element Traversal规范中的元素遍历方法

    对于元素间的空格,在IE9之前,都不会返回文档节点,其它的所有浏览器都会返回文档节点,为了兼容浏览器这间的差异,又不更改已有的DOM 标准,所以有了 Element Traversal 规范
    2018-04-04
  • 纯javascript判断查询日期是否为有效日期

    纯javascript判断查询日期是否为有效日期

    很多网站都涉及到输入日期选项,如果客户日期输入错误,可能导入查询不到甚至查询到错误的信息,为了更好的满足用户需求,需要对日期进行校验,下面给大家介绍使用纯javascript如何判断查询日期是否为有效日期,需要的朋友可以参考下
    2015-08-08
  • Javascript 键盘keyCode键码值表

    Javascript 键盘keyCode键码值表

    Javascript 键盘keyCode键码值表,需要的朋友可以保存一份。
    2009-12-12

最新评论