`
mycream
  • 浏览: 55813 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS 身份证号码验证

阅读更多
以下代码是从腾讯团购网站上提取的身份证号码验证,仅为学习参考之用。
(通过 http://jsbeautifier.org/ 进行代码格式化)
function checkIdcard(elem) {
    var area = {
        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 idcard = elem.toUpperCase();
    var Y, JYM;
    var S, M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    if (area[parseInt(idcard.substr(0, 2))] == null) {
        return false;
    }
    switch (idcard.length) {
    case 15:
        if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
        } else {
            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
        }
        if (ereg.test(idcard)) {
            return true;
        } else {
            return false;
        }
        break;
    case 18:
        if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
        } else {
            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
        }
        if (ereg.test(idcard)) {
            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3;
            Y = S % 11;
            M = "F";
            JYM = "10X98765432";
            M = JYM.substr(Y, 1);
            if (M == idcard_array[17]) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        };
        break;
    default:
        {
            return false;
        }
        break;
    }
    return true;
}
分享到:
评论

相关推荐

    javascript身份证号码验证-支持15位和18位带x身份证

    在IT行业中,身份证号码...以上就是使用JavaScript进行15位和18位身份证号码验证,尤其是18位带“X”身份证号码验证的详细方法。在处理用户输入时,这样的验证可以帮助我们减少错误数据,提高系统的稳定性和安全性。

    js身份证号码验证

    js身份证号码验证 详细全面的身份证号码验证

    身份证号码验证程序 javascript验证的html文件

    这个压缩包中的"身份证验证程序.html"文件是一个使用JavaScript编写的HTML页面,它用于验证输入的身份证号码是否合法。以下是对这个知识点的详细阐述: 1. **HTML(超文本标记语言)**:HTML是构建网页的基础,它...

    JS/JAVASCRIPT身份证号码验证

    直接调用checkIdcard(idcard)即可idcard为需要验证的身份证号码

    Js验证身份证号码 Demo例子里有完整的Js代码

    身份证号码验证; Demo例子里有完整的Js代码; 末位为X或x都能验证; 老身份证号码15位的也可以验证是否正确; 完整验证新老身份证号码的正确性

    js实现二代身份证号码验证详解

    该JS验证程序利用正则表达式对身份证号码进行格式校验,利用数组模拟映射表对地址码进行验证,并通过计算加权因子和校验码的方式检验身份证号码的正确性。此外,还考虑了15位身份证号码的特殊情况,并提供了转换为18...

    验证身份证号码有效性的js

    本文将深入探讨如何使用JavaScript来验证身份证号码的有效性,并解析相关的验证算法。 首先,中国的身份证号码由18位数字组成,分为三个部分:6位地址码、8位出生日期码和最后4位顺序码与校验码。校验码是根据前17...

    js身份证号码获取性别、出生日期、籍贯省市.zip

    这个压缩包文件“js身份证号码获取性别、出生日期、籍贯省市.zip”包含了一个JavaScript方法,用于从身份证号码中提取这些关键数据。下面我们将详细探讨如何通过身份证号码获取这些信息以及背后的逻辑。 首先,中国...

    最全身份证号码验证JS

    最全身份证号码验证JS包含以下内方面内容: 1、验证身份证的长度及格式 2、验证身份证地区是否正确 3、验证身份证上的出生日期是否正确 4、验证身份证号最后一位是否正确 5、根据身份证号验证性别 以上内容希望对有...

    18位身份证号码验证代码

    18位身份证号码验证代码,js验证 ,javascript验证18位身份证代码,js验证身份证号码。

    js身份证号码完全验证(精确到每一位)

    JavaScript身份证号码验证是一种常见的前端验证技术,用于确保用户输入的身份证号码符合中国大陆居民身份证的格式和规则。在网页表单中,这样的验证可以提高数据的准确性,减少服务器端的无效处理,提供更好的用户...

    js最权威身份证号码验证

    身份证规则验证 错1个数字都不行 /** * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,无法确定 * p: 性别,奇数为男,偶数为女 * <p /> * ...

    正则表达式 JS 身份证验证

    ### 正则表达式 JS 身份证验证详解 身份证号码在中国大陆地区具有唯一性,是个人身份的重要标识。为了确保信息安全和个人隐私保护,在很多应用系统中都需要对身份证号码进行合法性和格式性的验证。本文将详细阐述...

    身份证号码号码验证JS

    身份证号码号码验证JS。可以非常严格的对所输入的号码进行验证,特别是有‘X’的,以及二代身份证。

    js身份证号验证

    这个`testCard`函数是用于验证输入的身份证号码是否有效的。函数接受一个参数`papersId`,即待验证的身份证号码字符串。 首先,函数会检查`selectedId`变量,如果它不等于1或2,那么将进行身份证号码的验证。这里`...

    javascript 身份证号码格式验证

    运用javascript进行身份证号码格式验证。

    js 身份证号验证程序

    ### JavaScript 身份证号验证程序详解 #### 一、背景介绍 在现代社会,身份证作为个人身份的重要标识,在各种场景中被广泛应用。因此,对于身份证号码的验证也变得尤为重要。本篇文章将详细介绍一个基于JavaScript...

    js验证身份证号码的有效方法

    ### JS验证身份证号码的有效方法 身份证号码验证是前端开发中常见的功能之一,特别是在涉及用户注册、个人信息填写等场景时尤为重要。下面将详细介绍如何利用JavaScript来验证身份证号码的有效性。 #### 身份证...

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

    以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码 IdCard-Validate.js代码如下: 代码如下:/** * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,...

Global site tag (gtag.js) - Google Analytics