javascript身份证号码验证实例代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>网页特效身份证号码验证实例代码</title>
<script>
    function isidcardno(num)
    {
        var factorarr = new array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
        var error;
        var vararray = new array();
        var intvalue;
        var lngproduct = 0;
        var intcheckdigit;
        var intstrlen = num.length;
        var idnumber = num;
        // initialize
        if ((intstrlen != 15) && (intstrlen != 18))
        {
            return false;
        }
        // check and set value
        for(i=0;i<intstrlen;i++)
        {
            vararray[i] = idnumber.charat(i);
            if ((vararray[i] < '0' || vararray[i] > '9') && (i != 17))
            {
                return false;
            }
            else if (i < 17)
            {
                vararray[i] = vararray[i]*factorarr[i];
            }
        }
       
        if (intstrlen == 18)
        {
            //check date
            var date8 = idnumber.substring(6,14);
            if (checkdate(date8) == false)
            {
                //error = "身份证中日期信息不正确!.";
                return false;
            }
            // calculate the sum of the products
            for(i=0;i<17;i++)
            {
                lngproduct = lngproduct + vararray[i];
            }
            // calculate the check digit
            intcheckdigit = 12 - lngproduct % 11;
            switch (intcheckdigit)
            {
                case 10:
                intcheckdigit = 'x';
                break;
                case 11:
                intcheckdigit = 0;
                break;
                case 12:
                intcheckdigit = 1;
                break;
            }
            // check last digit
            if (vararray[17].touppercase() != intcheckdigit)
            {
                return false;
            }
       }
       else
        {   //length is 15
            //check date
            var date6 = idnumber.substring(6,12);
            if (checkdate(date6) == false)
            {
                //alert("身份证日期信息有误!.");
                return false;
            }
        }
        return true;
    }
   
    function checkdate(date)
    {
        return true;
    }

    function test()
    {
        var id = document.getelementbyid('id').value;
        alert(id);
        alert(isidcardno(id));
    }
</script>
</head>

<body>
<tr>
            <td align="right" class="reg-item"><span class="color">*</span>身 份 证:</td>
            <td><input id="user_sfz" class="input_out" name="user_sfz" type="text" onfocus="onfuos('user_sfz')" onblur="regsfz()" onmousemove="this.classname='input_move'" onmouseo教程ut="this.classname='input_out'" style="width:250px;" /></td>
            <td><span id="sfz"></span></td>
          </tr>
</body>
</html>
身份证号码的规则】
1、15位身份证号码组成:
ddddddyymmddxxs共15位,其中:
dddddd为6位的地方代码,根据这6位可以获得该身份证号所在地。
yy为2位的年份代码,是身份证持有人的出身年份。
mm为2位的月份代码,是身份证持有人的出身月份。
dd为2位的日期代码,是身份证持有人的出身日。
这6位在一起组成了身份证持有人的出生日期。
xx为2位的顺序码,这个是随机数。
s为1位的性别代码,奇数代表男性,偶数代表女性。
 
2、18位身份证号码组成:
ddddddyyyymmddxxsp共18位,其中:
其他部分都和15位的相同。年份代码由原来的2位升级到4位。最后一位为校验位。
校验规则是:
(1)十七位数字本体码加权求和公式
s = sum(ai * wi), i = 0, ... , 16 ,先对前17位数字的权求和
ai:表示第i位置上的身份证号码数字值
wi:表示第i位置上的加权因子
wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
y = mod(s, 11)
(3)通过模得到对应的校验码
y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 x 9 8 7 6 5 4 3 2

时间: 2024-07-31 17:52:31

javascript身份证号码验证实例代码的相关文章

不要再喊“谁给我一个身份证号码验证的代码”了,脚本之家站长提供了_应用技巧

QQ群里的兄弟问"谁给我一个身份证号码验证的代码"正好我也需要就从网上找了下代码,感觉不错,适合15和18位的身份证,网上好的垃圾站,都是直接采集csdn的问题,答案都没有,汉 用javascript验证15位或18位身份证号码 ,最离谱的事,竟然有人搜给我一个身分证号码,给我一个身份证看样大家很厉害啊,有可能大家是要一个身份证生成器吧,好的,我提供下吧 复制代码 代码如下: function   checkIDCard   (str)        {   //身份证正则表达式(15

javascript身份证号码验证

https://github.com/oxcow/id-number-validator 版权声明: 关于<javascript身份证号码验证>的一切权利归作者@Leeyee所有: 非商用.非衍生; 如需转载需要注明来源于http://iyiguo.net/blog/2013/07/31/javascript-idcard-validate/ 15位身份证号码编码规则 18位身份证号码编码规则 校验规则 javascript编码实现 源代码 验证示例 15位身份证号码编码规则 ddddddyy

javascript身份证号码验证函数

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="conte

javascript身份证号码验证函数支持带x

  //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num) { var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit; var intStrLen = num.length; var idNumber

javascript 身份证号码验证函数(可辨真伪,支持15或18位身份证号)测试误差为0_javascript技巧

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 更直接的测试代码就是:alert(test("身份证号码")); 经测试,上面的JS验证太强大了,输入正确的身份证后,随便改一位都报错!非常实用,以后大家就方便了解用户输入的身份证的正确与否了.

js实现身份证号码验证的简单实例

 本篇文章主要是对js实现身份证号码验证的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码   IdCard-Validate.js代码如下:     代码如下: /**  * 身份证15位编码规则:dddddd yymmdd xx p   * dddddd:地区码   * yymmdd: 出生年月日   * xx: 顺序类编码,无法确定   * p: 性别,奇数为男,偶数为女  * <p />  * 身份证18位编

js验证身份证号码真实性实现代码

身份证号分为两种,旧的为15位,新的为18位.身份证15位编码规则:dddddd yymmdd xx p    其中 dddddd:地区码    yymmdd: 出生年月日    xx: 顺序类编码,无法确定    p: 性别,奇数为男,偶数为女: 身份证18位编码规则:dddddd yyyymmdd xxx y    其中 dddddd:地区码    yyyymmdd: 出生年月日     xxx:顺序类编码,无法确定,奇数为男,偶数为女    y: 校验码,该位数值可通过前17位计算获得,计

asp.net 中国身份证号码验证代码 非正则_实用技巧

复制代码 代码如下: using System; /// <summary> /// Summary description for IDCardValid /// </summary> public class IDCardValid { public IDCardValid() { // // TODO: Add constructor logic here // } /// <summary> /// 验证身份证号码 /// </summary> //

jsp身份证号码验证代码(15,18位)

<%@ page contenttype="text/html; charset=gb2312" language="java" import="java.sql.*" errorpage="" %> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml