`

js验证身份证号码

    博客分类:
  • js
 
阅读更多

/**
 * 验证身份证
 *
 * @param {}
 *            num
 * @return {Boolean}
 */
function isIdCardNo(num) {
 num = num.toUpperCase().trim();
 // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
  // Ext.Msg.alert('提示','输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X');
  return false;
 }
 // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
 // 下面分别分析出生日期和校验位
 var len, re;
 len = num.length;

 if (len == 15) {
  re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
  var arrSplit = num.match(re);

  // 检查生日日期是否正确
  var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/'
    + arrSplit[4]);
  var bGoodDay;
  bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2]))
    && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))
    && (dtmBirth.getDate() == Number(arrSplit[4]));
  if (!bGoodDay) {
   // Ext.Msg.alert('提示','输入的身份证号里出生日期不对!');
   return false;
  } else {
   // 将15位身份证转成18位
   // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
   var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,
     8, 4, 2);
   var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4',
     '3', '2');
   var nTemp = 0, i;
   num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
   for (i = 0; i < 17; i++) {
    nTemp += num.substr(i, 1) * arrInt[i];
   }
   num += arrCh[nTemp % 11];
   return num;
  }
 }
 if (len == 18) {
  re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
  var arrSplit = num.match(re);

  // 检查生日日期是否正确
  var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/"
    + arrSplit[4]);
  var bGoodDay;
  bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2]))
    && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))
    && (dtmBirth.getDate() == Number(arrSplit[4]));
  if (!bGoodDay) {
   // Ext.Msg.alert('提示','输入的身份证号里出生日期不对!');
   return false;
  } else {
   // 检验18位身份证的校验码是否正确。
   // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
   var valnum;
   var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,
     8, 4, 2);
   var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4',
     '3', '2');
   var nTemp = 0, i;
   for (i = 0; i < 17; i++) {
    nTemp += num.substr(i, 1) * arrInt[i];
   }
   valnum = arrCh[nTemp % 11];
   if (valnum != num.substr(17, 1)) {
    // Ext.Msg.alert('提示','18位身份证的校验码不正确!应该为:' + valnum);
    return false;
   }
   return true;
  }
 }
 return false;
}

分享到:
评论

相关推荐

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

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

    JS验证身份证号码合法性.txt

    JS验证身份证号码合法性

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

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

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

    要使用JavaScript验证身份证号码,我们首先需要定义一个函数,例如`isValidIDCard`,接收一个身份证号码作为参数。这个函数的核心就是校验码的计算过程。以下是一个简单的实现: ```javascript function ...

    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...

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

    4. **校验码**(第18位):基于前17位数字通过特定算法计算得出,用于验证身份证号码的合法性。 要从身份证号码中获取性别,我们只需要查看第17位数字。如果它是奇数,那么这个人是男性;如果是偶数,那么这个人是...

    js身份证号码验证

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

    js验证身份证格式

    在JavaScript中,验证身份证号码通常涉及以下步骤: 1. **长度检查**:检查输入的身份证号码长度,必须是15位或18位。 2. **字符类型检查**:身份证号码只包含数字,因此需要确保输入的字符串仅包含0-9的数字。 3. ...

    JS验证身份证及获取地区功能示例

    首先,身份证验证是确保用户输入的身份证号码合法的关键步骤。身份证号码由18位数字组成,前6位代表行政区划代码,接下来的7位是出生日期,接着的3位是顺序码,最后一位是校验码。JS中可以使用正则表达式进行验证: ...

    18位身份证号码验证代码

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

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

    在这个例子中,JavaScript代码负责处理用户的输入,进行身份证号码的有效性验证。 3. **身份证号码验证规则**:中国的身份证号码由18位数字组成,包括地区码、出生日期码、顺序码和校验码。验证时需检查: - 地区...

    正则表达式 JS 身份证验证

    2. **精确模式**:更加细致地验证身份证号码的格式,包括检查出生日期的合理性等。 ```javascript /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/ ``` 该正则表达式能够更准确地验证18位身份证...

    javaScript 验证身份证号是否正确,并能获取户口所在地。

    javaScript实现验证身份证是否正确,并能获取户口所在地。 调用方式: 引入idCard.js var msg = idCard.checkIdCard(身份证号); msg为 "正确" 时验证正确,否则返回错误信息 身份证正确时调用 var address = ...

    javascript 身份证号码格式验证

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

    根据身份证号码获取性别、出生日期、籍贯省市的js示例

    6. **JavaScript实现**:在JS文件中编写函数,监听身份证号码输入框的`oninput`事件。当输入发生改变时,调用该函数,根据上述逻辑解析身份证号码并更新相应的显示区域。 7. **事件处理**:在JavaScript中,可以...

    最全身份证号码验证JS

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

    身份证号码号码验证JS

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

    用JavaScript验证身份证号

    * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,无法确定 ... * i为身份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置

Global site tag (gtag.js) - Google Analytics