<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS验证身份证的合法性</title>
<script>
//传入身份号码,根据特定的算法进行判断验证,计算出最后传入的身份证号码是否正确。
/*  身份证验证  开始  */
function idCard(){
var identNumber = document.getElementById('idCardNumber').value;
alert("身份证号码为:"+identNumber);
if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(identNumber))) {
alert("身份证号码格式错误");
return false;
}
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。  
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(identNumber))){
alert("身份证号码格式错误");
return false;
}
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
//下面分别分析出生日期和校验位
var len, re;
len = identNumber.length;
//判断18位身份证号码,现在在国家统一身份证为18位。
if (len == 18){
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = identNumber.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){
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 += identNumber.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != identNumber.substr(17, 1)){
alert("身份证号码校验位不正确");
return false;
}
alert("身份证合法");
}
}else{
alert("身份证号码位数不足18位");
return false;
}
}
/*  身份证验证  结束  */
</script>
</head>
<body>
<div>
<input type="text" style="width:200px;" id="idCardNumber"/>
<input type="button" value="提交" οnclick="idCard()">
</div>
</body>
</html>

JS判断身份证(15位18位)的合法性相关推荐

  1. 身份证号码js校验(15位18位)

    idcard: {// 验证身份证(15位18位)validator: function (value) {// 1.传入15位或者18位身份证号码,18位号码末位可以为数字或Xvar idCard ...

  2. 身份证验证信息15位或18位

    一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从 ...

  3. javascript实现完美身份证号有效性验证15位18位

    欢迎各位朋友!   前几天在开发中要求对用户的身份证号进行比较严格的校验,所以才有了这些代码, 下面的这些代码主要包括对身份证长度,地区,出生日期的校验. 方法在return时返回了一个是否通过以及提 ...

  4. 15位或18位身份证验证

    c#实现的18位身份证格式验证算法 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11643-1999< ...

  5. 身份证号码工具类(15位,18位,10位)

    解析身份证信息的工具类,包括获得身份证的出生日期,性别,身份证省份,留作自用 import java.text.ParseException; import java.text.SimpleDateF ...

  6. 身份证号码是18位数字字符构成的字符串,输入一个身份证号码判断该号码拥有者的性别

    /*身份证号码是18位数字字符构成的字符串,输入一个身份证号码判断该号码拥有者的性别 提示:第17为数字字符奇数为男,偶数为女 */ #include #include #include #inclu ...

  7. Excel如何快速将15位身份证号码转为18位

    今天跟大家分享一下Excel如何快速将15位身份证号码转为18位 ​ 1.首先我们选中身份证号码单元格区域 2.点击[DIY工具箱] 3.点击[身份证]选择[15位身份证证升18位] 4.点击[确定] ...

  8. HTML 传输 字符转换 进制转换 15位 18位 时间戳 转换

    <h1>中国</h1> ######################################## HTML字符实体 格式:&#ASCII码十进制数; <h ...

  9. 16Aspx.com-将15位身份证转换成18位

    16Aspx.com-将15位身份证转换成18位 //************************************************************************* ...

  10. java后台证件号15转18位

    最近做一个小项目,涉及到证件号码的校验,虽然目前基本没有15位证件号码,但是项目要求还是需要把15位转18位的问题校验. 原始代码中,有关于15位转18位和18转15位校验的. 本次只涉及15转18位 ...

最新文章

  1. Redux 源码解析系列(一) -- Redux的实现思想
  2. Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib
  3. [云炬创业管理笔记]第二章成为创业者讨论4
  4. 【转】C++中的SFINAE
  5. Activity的taskAffinity属性
  6. Transformer and set Trasformer
  7. 第三届(2016)科学数据大会——科学数据与创新发展征文通知
  8. 深入理解Lock的底层实现原理
  9. 怎么解决tomcat端口占用问题?
  10. scala中的数组的转换操作
  11. Android.mk转换到Android.bp方法
  12. 串口通信----串口接收框接收不到数据
  13. c语言经典题100及答案,100个经典c语言例题(带答案)
  14. JAVA基于J2ME的手机游戏开发免费
  15. 欧拉-拉格朗日方程(Euler -Lagrange equation)
  16. matlab subs函数
  17. 技术系统进化法则包括_TRIZ理论八大技术系统进化法则.doc
  18. uva 11584 dp
  19. 2021-09-29 计算BMI值(国际上常用的衡量人体胖瘦程度的一个标准)(要保留多少位有效数字可以用python内置的 round 函数)
  20. 2017年12月。。

热门文章

  1. 企业迁移到云之前要考虑的关键因素
  2. golang使用mongo-driver操作增删改查
  3. KALI Linux 的下载与安装
  4. PingCAP Clinic 快速上手指南
  5. 数据结构实验课:实验六、图的遍历操作及应用
  6. JQuery实现点击缩略图查看大图效果
  7. for循环倒序java_for循环
  8. Cuphead开发人员针对Nintendo Switch进行优化的技巧
  9. 小学加减法数学题自动生成
  10. 【秒懂音视频开发】07_重识音频