怎样严格检验身份证号码?一个验证Javascript身份证号验证函数

编程之家收集整理的这篇文章主要介绍了怎样严格检验身份证号码?一个验证Javascript身份证号验证函数编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

《怎样严格检验身份证号码?一个验证Javascript身份证号验证函数》要点:
本文介绍了怎样严格检验身份证号码?一个验证Javascript身份证号验证函数,希望对您有用。如果有疑问,可以联系我们。

如果需要PHP服务器端身份证验证类,查看这里:http://www.jb51.cc/jiaocheng/43.html


普通的身份证验证函数,都是只对身份证格式验证。而这个函数,则进一步验证了身份证有效与否。


<!DOCTYPE html>
<html lang="en">
<head>
       <Meta charset="utf-8" />
       <title>严格的身份证号验证</title>
       <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>

<body>
<h3>严格的身份证号验证</h3>
<script type="text/javascript">

       function idCardCheck(idValue) {
              var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 1];// 加权因子;
 var ValideCode = [1, 0, 2];// 身份证验证位值,10代表X;

 if (idValue.length == 15)
              {
                     return isValidityBrithBy15IdCard(idValue);
              } else if (idValue.length == 18)  {
                     var a_idCard = idValue.split("");// 得到身份证数组
 if (isValidityBrithBy18IdCard(idValue) && isTrueValidateCodeBy18IdCard(a_idCard))
                     {
                            return true;
                     }
                     return false;
              }
              return false;

              function isTrueValidateCodeBy18IdCard(a_idCard)
              {
                     var sum = 0; // 声明加权求和变量
 if (a_idCard[17].toLowerCase() == 'x')   {
                            a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
 }
                     for (var i = 0; i < 17; i++) {
                            sum += Wi[i] * a_idCard[i];// 加权求和
 }
                     valCodePosition = sum % 11;// 得到验证码所位置
 if (a_idCard[17] == ValideCode[valCodePosition]) {
                            return true;
                     }
                     return false;
              }

              function isValidityBrithBy18IdCard(idCard18)
              {
                     var year = idCard18.substring(6, 10);
                     var month = idCard18.substring(10, 12);
                     var day = idCard18.substring(12, 14);
                     var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
                     // 这里用getFullYear()获取年份,避免千年虫问题
 if (temp_date.getFullYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day))
                     {
                            return false;
                     }
                     return true;
              }

              function isValidityBrithBy15IdCard(idCard15)
              {
                     var year = idCard15.substring(6, 8);
                     var month = idCard15.substring(8, 10);
                     var day = idCard15.substring(10, 12);
                     var temp_date = new Date(year, parseFloat(day));
                     // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
 if (temp_date.getYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day))
                     {
                            return false;
                     }
                     return true;
              }
       }  // idCardCheck结束

 function  checkId(){
              var idCard =  $('input[name=idCard]').val();
              var isId =  idCardCheck(idCard);
              if(isId) $('span').html('正确的身份证号');
              else  $('span').html('错误的身份证号');
       }
</script>

<input type="text" name="idCard" onblur="checkId();" />
<span></span>
</body>
</html>

总结

以上是编程之家为你收集整理的怎样严格检验身份证号码?一个验证Javascript身份证号验证函数全部内容,希望文章能够帮你解决怎样严格检验身份证号码?一个验证Javascript身份证号验证函数所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478

猜你在找的JavaScript相关文章

事件处理 【onClick】单击事件、【onMouseOver】鼠标经过事件、【onMouseOut】鼠标移出事件、【onChange】文本内容改变事件、【onSelect】文本被框选事件、【onFo
先说明一下为什么要写这个,因为最近在面试,面试的时候面试官问了这个问题,当时是真的没有答上来,回来之后自己考虑了一下,现在给大家分享 要求如下: 重写js push函数,使其能够在push的同时打印出
所有对象都是具有toLocalString(), toString(), valueOf()三种方法的,此篇博客主要是讲述其在Array引用类型上的使用。 基本使用 调用valueOf()返回的是数组
本篇博客主要来整合一下JS继承的六种方式及其优缺点。首先我们提供一个父类: // 父类 function Person(name) { this.name = name; this.showName
一、背景 最近在写一个批量上传的 node 脚本,其实大家可以想到批量上传带来的接口性能问题,如果将需要上传的文件通过多个异步请求同时上传的话,服务器方面应该是吃不消的,所以这里提出一个 promis
在 Python 中,将字符串转为整型变量的函数是 int() ,直接使用 int(&amp;quot;123&amp;quot;)就可以得到 123的输出结果,这样可以比较快速的得到我们想要的结果,
一、前言 ReactColor 是一个优秀的 React 颜色选择器组件,官方给了多种布局供开发者选择。 笔者常用的主题为 Sketch,这种主题涵盖了颜色面板、推荐色块、RGB颜色输入等功能,比较完
一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,par
前言:为什么要学习这个方法 遇到这个方法主要是最近在阅读redux,koa 原理 等多次遇到这个方法,为了更好地理解框架原理,于是深入学习了一下compose的实现。 然后也发现这属于函数式编程的东西
前言 Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值。我的理解是,在javascript中所有表达式为true的值。同理Falsy指的是在javascript中所有
比如下面的代码,从服务端请求回来的订单数据如下,需要进行以下处理1.根据 status 进行对应值得显示(0-进行中,1-已完成,2-订单异常)2.把 startTime 由时间戳显示成 yyyy-m
前言 如下图: AMD与CMD的主要区别: 1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。