`

身份证校验

 
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
       <html>
            <head>
                  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
                  <title>身份证校验</title>
                  <script type="text/javascript">
                        function checkCertificateNo(){
                              var certificateNo = document.getElementById("certificateNo").value;//身份证号码
                              if(certificateNo.length != 18){
                                    alert("身份证号码无效,请使用第二代身份证!!!"); 
                              }else{
                                    var address = certificateNo.substring(0,6);//6位,地区代码
                                    var birthday = certificateNo.substring(6,14);//8位,出生日期
                                    var sequenceCode =  certificateNo.substring(14,17);//3位,顺序码:奇为男,偶为女
                                    var checkCode =  certificateNo.substring(17);//1位,校验码:检验位
                                    console.log("身份证号码:"+certificateNo+"、地区代码:"+address+"、出生日期:"+birthday+"、顺序码:"+sequenceCode+"、校验码:"+checkCode);

                                    var province={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:"国外"};

                                    var year =  birthday.substring(0,4);   
                                    var month = birthday.substring(4,6);   
                                    var day = birthday.substring(6);
                                    var tempDate = new Date(year,parseFloat(month)-1,parseFloat(day)); 
                                    if(province[parseInt(address.substr(0,2))] == null || (tempDate.getFullYear()!=parseFloat(year) || tempDate.getMonth()!=parseFloat(month)-1 || tempDate.getDate()!=parseFloat(day))){//这里用getFullYear()获取年份,避免千年虫问题
                                          alert("身份证号码无效,请重新输入!!!");
                                    }else{
                                          var weightedFactors = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];//加权因子   
                                          var valideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,其中10代表X
                                          var certificateNoArray =certificateNo.split("");// 得到身份证数组
                                          var sum = 0;// 声明加权求和变量
                                          if (certificateNoArray[17].toLowerCase() == 'x') {
                                                certificateNoArray[17] = 10;// 将最后位为x的验证码替换为10  
                                          }
                                         for ( var i = 0; i < 17; i++) {
                                               sum += weightedFactors[i] * certificateNoArray[i];// 加权求和   
                                        }
                                        valCodePosition = sum % 11;// 得到验证码所在位置
                                       if (certificateNoArray[17] == valideCode[valCodePosition]) {
                                              var sex = "男";
                                             if(sequenceCode%2==0){
                                                    sex = "女";
                                              }
                                             alert("身份证号码有效,性别为:"+sex+"!");
                                        } else {
                                             alert("身份证号码无效,请重新输入!!!");
                                        }
                                   }
                             }
                         }
                   </script>
            </head>
            <body>
                  <input id = "certificateNo" name = "certificateNo" value = "61072919761109762X"/> &nbsp;&nbsp;&nbsp;<input type="button" onclick="checkCertificateNo();" value = "开始校验"/>
            </body>
 </html>

 

分享到:
评论

相关推荐

    Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验

    Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验

    【PTA】【作者: 赵冲 单位: 厦门大学】7-1 身份证校验_python

    中国居民身份证校验码算法如下: 将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 将这17位数字和系数相乘的结果相加。用加...

    18位身份证校验位计算方法

    本函数提供18位身份证校验位的计算方法,输入前17位即可得到第18位的校验码!

    Oracle实现身份证校验功能

    ### Oracle实现身份证校验功能 #### 身份证号码结构 1. **行政区划代码**:前六位表示持证人的常住户口所在地; 2. **出生日期**:第七到第十四位,表示持证人的出生年月日; 3. **顺序码**:第十五到第十七位,...

    一个身份证校验的小程序

    身份证校验小程序是一种用于验证中国大陆居民身份证号码合法性和真实性的工具。在开发此类程序时,我们需要深入理解身份证号码的结构和编码规则。在中国,身份证号码是18位数字,包含了出生日期、性别、地区代码以及...

    SQL15位和18位公民身份证校验函数

    ### SQL15位和18位公民身份证校验函数知识点详解 #### 一、背景介绍 在进行数据录入时,确保身份证信息的合法性至关重要。不正确的身份证信息将导致数据的有效性和准确性大打折扣。为此,设计了一款专门用于校验15...

    身份证校验码方法-Java

    根据提供的信息,我们可以总结出以下关于“身份证校验码方法-Java”的知识点: ### 一、身份证号码结构 中国的第二代居民身份证号码由18位组成,包括了以下几个部分: - **前6位**:行政区划代码。 - **第7至14位*...

    免费小型身份证校验接口

    ### 知识点一:身份证校验接口的基本概念 身份证校验接口是一种专门用于验证身份证号码真实性的网络服务。在本案例中,该接口通过发送HTTP请求至特定URL(如`https://shenfen.supfree.net/search.asp?id=身份证号`...

    身份证校验码计算器.bat

    此工具可通过计算,得出身份证号码最后一位。需提供身份证号码前17位,准确率100%。

    身份证校验码计算器.py

    可以计算身份证校验码,要python环境

    身份证校验JavaScript

    身份证校验JavaScript 身份证校验JavaScript 身份证校验JavaScript

    VC++身份证校验码生成,某年某月最大天数,提取生日等

    身份证校验码生成,某年某月最大天数,从身份证号中提取性别,年龄,生日等信息。

    身份证校验位计算

    自动计算(18位)身份证最后一位校验位。 身份证号码组成:6位区域码,8位身份证号,2位序号,1位性别码(男奇数,女偶数),1位校验码,共计18位

    身份证校验码查询工具

    身份证校验码,也称为身份证号码的最后一位校验位,是用于确保身份证号码正确性的关键部分。在中华人民共和国居民身份证中,这个校验码是由前17位数字经过特定算法计算得出的,用于验证整个身份证号码的合法性。在本...

    APISpace 身份证校验 API接口 PHP调用示例代码

    首先,APISpace是一个综合性的API服务平台,它为开发者提供了多种API资源,包括身份证校验服务。该服务的主要功能是验证输入的姓名和身份证号码是否匹配,确保用户提供的身份信息准确无误。这对于需要进行实名认证的...

    18位身份证校验

    身份证校验是确保这些信息准确无误的关键步骤,它涉及到一系列数学计算和编码规则。下面将详细阐述18位身份证校验的相关知识点。 首先,身份证号码的第一位代表的是性别。奇数表示男性,偶数表示女性。接下来的六位...

    MYSQL数据库校验身份证函数

    本文将深入解析MySQL数据库中实现的身份证校验函数——`CHECKIDCARD`。该函数能够有效地校验输入的身份证号码是否符合中国身份证的标准格式。 #### 二、函数定义与参数 ```sql CREATE DEFINER=`root`@`%` FUNCTION...

    js身份证校验

    身份证校验规则,支持15、18位身份证,支持地址编码、出生日期、校验位验证

    身份证校验软件V1.2[千千数码完全功能版]

    身份证校验软件V1.2 [千千数码室完全功能版] 千千数码室制作 作者:陆城邑

Global site tag (gtag.js) - Google Analytics