`
umgsai
  • 浏览: 112067 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Javascript校验身份证是否合法

 
阅读更多
    validateIdCard: function (code) {
        var self = addBank;
        //身份证号合法性验证
        //支持15位和18位身份证号
        //支持地址编码、出生日期、校验位验证
        var city={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 tip = "";
        var pass= true;

        if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
            tip = "身份证号格式错误";
            pass = false;
        }
        else if(!city[code.substr(0,2)]){
            tip = "地址编码错误";
            pass = false;
        }
        else{
            //18位身份证需要验证最后一位校验位
            if(code.length == 18){
                code = code.split('');
                //∑(ai×Wi)(mod 11)
                //加权因子
                var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
                //校验位
                var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
                var sum = 0;
                var ai = 0;
                var wi = 0;
                for (var i = 0; i < 17; i++)
                {
                    ai = code[i];
                    wi = factor[i];
                    sum += ai * wi;
                }
                var last = parity[sum % 11];
                if(parity[sum % 11] != code[17]){
                    tip = "校验位错误";
                    pass =false;
                }
            }
        }
        if(!pass) {
            document.getElementsByClassName("identity-input-area-hint")[0].innerHTML = "请填写正确的身份证信息";
            document.getElementsByClassName("identity-input-area-hint")[0].style.display = "block";
            console.log(tip);
        } else {
            document.getElementsByClassName("identity-input-area-hint")[0].style.display = "none";
        }
        return pass;
    }

 

分享到:
评论

相关推荐

    javascript校验身份证号码合法性

    使用javascript校验身份证号码的合法性 校验规则严格,很容易套用到项目中 套用例子详见http://blog.csdn.net/zcyhappy1314/article/details/8645189

    JavaScript正则表达式验证身份证号码是否合法(两种方法)分析.docx

    JavaScript正则表达式验证身份证号码是否合法(两种方法)分析 正则表达式(Regular Expression)是一种描述字符模式的对象。下面,我们将通过JavaScript正则表达式来验证身份证号码是否合法。 正则表达式的基本...

    正则表达式校验身份证号码

    ### 正则表达式校验身份证号码 #### 知识点概述 身份证号码在中国大陆具有唯一性,用于标识每一个公民的身份。身份证号码分为15位和18位两种格式,其中18位号码是在15位基础上增加了一个4位出生年份以及一位校验码...

    JavaScript的form表单验证中的身份证校验.pdf

    ### JavaScript中的身份证校验知识点详解 #### 一、引言 在进行Web应用程序开发时,表单验证是一项非常重要的功能,它可以确保用户输入的数据格式正确并符合预期的要求。其中,身份证号码验证尤其重要,因为它涉及...

    jquery.validate 扩展身份证校验方法

    - 对于18位身份证号码还需要额外验证最后一位校验码是否正确。 5. **正则表达式的使用**: 使用正则表达式`ereg`来匹配身份证号码的格式,确保日期部分的合法性。 6. **18位身份证号码的校验码验证**: 如果是...

    idcard:校验身份证是否合法,获取身份证详细信息

    verify:校验身份证合法性,返回boolean值 var idCard = require('idcard'); /** * param:idcard(string) * return boolean */ idCard.verify('440882199100201232');//false info:获取身份证详细信息,返回一个json...

    验证身份证是否合法

    本文将详细介绍如何通过JavaScript实现对身份证合法性的验证,包括以下几个方面: 1. **身份证的基本格式校验**:确保输入的字符串符合身份证的基本形式。 2. **身份证归属地验证**:通过前两位数字确定身份证归属...

    kettle 数据过滤,验证

    kettle 提供了多种正则表达式函数,例如 checkIdcard 函数,用于验证身份证号码是否合法。 在脚本中,我们首先定义了几个变量,包括 c15、c18、msg 和 re。然后,我们使用 getId15 和 getId18 函数将身份证号码转换...

    如何用javascript正则表达式验证身份证号码是否合法

    在用户注册页面有些需求要求的比较严格,需要对身份证验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客。此篇文章主要是讲解如何用javascript正则表达式验证身份证号码是否合法,需要的朋友可以参考下

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

    这个正则表达式会检查身份证号码的长度、地区码、年份(只考虑1900年以后)、月份和日期的合法性,以及最后一位的校验码。其中,`[\dXx]` 表示校验码可以是0-9的任何数字或字母“X/x”。 验证身份证号码的完整...

    身份证校验javascript验证方法

    在JavaScript中实现身份证校验可以帮助开发者在前端就过滤掉无效的身份证号码,提高用户体验并减轻服务器端的压力。以下是对标题和描述中涉及的知识点的详细解释: 1. **身份证号码结构**:中国的身份证号码分为15...

    javascript身份证验证

    ### JavaScript身份证验证详解 在日常的web开发中,身份证验证是一项常见的需求,尤其是在涉及用户信息登记、身份认证等场景下。本文将详细解析一个基于JavaScript的身份证验证算法,旨在帮助开发者理解和实现...

    js验证身份证格式

    本压缩包提供的资源“js验证身份证”包含了一个JavaScript函数,用于检查输入的身份证号码是否符合15位或18位身份证号码的规则。 首先,我们来了解一下中国身份证的基本结构。15位身份证号码在1999年后已经被18位...

    java以及JavaScript的香港身份证验证方法。.pdf

    Java 和 JavaScript 的香港身份证验证方法主要涉及对香港身份证号码格式的有效性检查,通过特定的算法来确定号码是否合法。在 Java 和 JavaScript 中,这个验证过程包括以下步骤: 1. **预处理身份证号码**: - 在...

    JavaScript实现身份证验证代码实例

    //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { //alert('输入的身份证号长度不对,或者号码不

    身份证格式校验纯JS

    标题中的“身份证格式校验纯JS”指的是使用JavaScript语言实现的身份证号码合法性验证功能。在网页开发中,这种校验通常用于用户输入表单时,确保用户提供的身份证号码符合中国公民身份证号码的规则,从而提高数据...

    基于javascript简单实现对身份证校验

    校验身份证号码在Web应用开发中非常常见,用于验证用户输入是否合法。该校验算法比较简单,但在实际应用中应当与数据库中的真实信息配合使用,并且还应考虑更复杂的身份证防伪技术,如印刷防伪、芯片防伪等。通过...

    javascript校验集合

    在这个名为“javascript校验集合”的资源中,你将找到一系列针对不同类型数据的验证函数,如邮箱、身份证、数字和字母等。这些验证规则可以帮助你构建更健壮的前端应用程序。 首先,我们来看电子邮件验证。在互联网...

    JavaScript正则表达式验证身份证号码是否合法(两种方法)

    在了解JavaScript正则表达式验证身份证号码是否合法前,我们首先需要了解身份证号码的基本构成。中国大陆的身份证号码,也就是公民身份号码,由18位数字组成。前六位是地址码,接下来的八位是出生日期码,然后是三位...

    常用js大全,javascript校验大全

    这个“常用js大全,javascript校验大全”集合了多种常见的验证功能,确保用户输入的数据格式正确,从而提高用户体验和系统安全性。以下是一些主要的知识点: 1. **数字验证**:用于检查字符串是否全由数字组成,这...

Global site tag (gtag.js) - Google Analytics