`
zyazyz008
  • 浏览: 4088 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JavaScript 18位身份证验证及身份证号码规则

阅读更多
<script>
  function checkID(ID) {
    if(typeof ID !== 'string') return '非法字符串';
    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 birthday = ID.substr(6, 4) + '/' + Number(ID.substr(10, 2)) + '/' + Number(ID.substr(12, 2));
    var d = new Date(birthday);
    var newBirthday = d.getFullYear() + '/' + Number(d.getMonth() + 1) + '/' + Number(d.getDate());
    var currentTime = new Date().getTime();
    var time = d.getTime();
    var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
    var sum = 0, i, residue;
 
    if(!/^\d{17}(\d|x)$/i.test(ID)) return '非法身份证';
    if(city[ID.substr(0,2)] === undefined) return "非法地区";
    if(time >= currentTime || birthday !== newBirthday) return '非法生日';
    for(i=0; i<17; i++) {
      sum += ID.substr(i, 1) * arrInt[i];
    }
    residue = arrCh[sum % 11];
    if (residue !== ID.substr(17, 1)) return '非法身份证哦';
 
    return city[ID.substr(0,2)]+","+birthday+","+(ID.substr(16,1)%2?" 男":"女")
  }
</script>
分享到:
评论

相关推荐

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

    验证身份证号码的完整JavaScript函数可能如下所示: ```javascript function isIdCard(id) { var regex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[\dXx]$/; if (!regex.test...

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

    综上所述,这个身份证验证程序利用HTML和JavaScript技术实现了对用户输入的身份证号码的有效性检查,提供了良好的用户体验,并遵循了中国身份证号码的验证规则。对于前端开发人员来说,理解和掌握这些技术是至关重要...

    18位身份证号码验证代码

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

    身份证验证javascript脚本

    - 第十八位是校验码,用于验证身份证号码的有效性。 ### JavaScript验证代码分析 #### 地区编码验证 - 通过一个名为`area`的对象来存储各地区的前两位数字及其对应的省份名称。 - 使用`parseInt(idcard.substr(0,2...

    JavaScript截取手机号码 手机验证 身份证验证等等

    身份证验证涉及到更复杂的校验规则,包括地区代码、出生日期、顺序号和校验码等。以下是一个简单的18位身份证号码验证函数: ```javascript function validateIdCard(id) { const idRegex = /(^\d{15}$)|(^\d{18}$...

    javascript身份证验证

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

    javascript 身份证号码格式验证

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

    用JavaScript验证身份证号

    * 身份证18位编码规则:dddddd yyyymmdd xxx y * dddddd:地区码 * yyyymmdd: 出生年月日 * xxx:顺序类编码,无法确定,奇数为男,偶数为女 * y: 校验码,该位数值可通过前17位计算获得 * &lt;p /&gt; * 18位...

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

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

    JS 身份证验证程序

    总结来说,JavaScript身份证验证涉及到正则表达式用于基础格式检查,以及复杂的校验码计算以确保号码的准确性。在实际应用中,这样的验证功能对于提升用户体验和数据安全性至关重要。通过分析和理解shenfenzheng.js...

    正则表达式 JS 身份证验证

    2. **18位身份证号码**:在15位的基础上增加了一个校验码,即行政区划代码(6位)、出生日期码(8位)、顺序码(3位)以及最后一位校验码(1位),其中校验码可以是数字0~9或者大写字母X。 #### 二、正则表达式的...

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

    为了准确地验证身份证号码,我们需要构建一个正则表达式来匹配这些规则。以下是对每个部分的具体解释: 1. **地址码**(地区): - 表达式:`[1-9]\d{5}` - 解释:首位数字必须为1到9之间的任意一个数字,后面...

    身份证号验证程序javascript

    2. **格式检查**:验证身份证号码是否符合规定的格式(前17位数字+最后一位校验码)。 3. **地区代码检查**:验证身份证号码的前两位是否为合法的地区代码。 4. **出生日期检查**:验证身份证号码中的出生日期是否...

    身份证 验证javascript

    身份证 验证javascript

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

    #### 身份证号码规则简介 身份证号码一般有两种格式:15位与18位。其中: - **15位**:早期使用的身份证号码格式,现已不再新发,但仍然有效。 - **18位**:目前常用的身份证号码格式,包括地区码、出生日期码、...

    身份证15位或18位验证

    身份证15位或18位验证

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

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

Global site tag (gtag.js) - Google Analytics