"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"" />

JS验证身份证有效性示例

 更新时间:2013年10月13日 07:27  点击:2424

代码如下:


function checkIdcard(idcard){
var Errors=new Array(
"验证通过",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
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,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
//身份号码位数及格式检验
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 Errors[0];
else return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((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]))
//平年月日:((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]))
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[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[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 Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}

[!--infotagslink--]

相关文章

  • php身份证校验码的计算例子

    下面来给各位同学介绍一个php身份证校验码的计算例子,希望本函数代码能帮助到各位同学哦。 例子 代码如下 复制代码 public function id_ver...2016-11-25
  • phpexcel导出数据身份证后四位0000解决办法

    在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
  • js验证身份证号有效性并提示对应信息

    直接上代码,逐行对代码进行研究,一定会有所收获。function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); r...2015-10-21
  • C#实现验证身份证是否合法的方法

    这篇文章主要介绍了C#实现验证身份证是否合法的方法,实例分析了通过自定义函数实现针对身份证合法性验证的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • 基于C#技术实现身份证识别功能

    这篇文章主要介绍了基于C#技术实现身份证识别功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C#身份证号码验证是否正确

    这一篇关于C#语言验证18位身份证号码的验证方法和实例代码,感兴趣的朋友可以参考一下...2020-06-25
  • PHP身份证校验码计算方法

    本文给大家分享尝试使用php语言实现身份证校验码以此来判断用户的身份证号码是否正确...2016-08-27
  • PHP计算身份证校验码示例

    身份证号码中的校验码是身份证号码的最后一位,是根据中华人民共和国国家标准GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,我们下面来看利用PH...2016-11-25
  • C#验证身份证的函数

    因做项目需要,参考网上资料写了一个身份证验证的C#方法,本方法是在VS2005[C/S] 下写的。前面2个是网友们的实现方法,第三个才是项目中使用的哦,小伙伴们参考下吧。...2020-06-25
  • SqlServer2000+ 身份证合法校验函数的示例代码

    这篇文章主要介绍了SqlServer2000+ 身份证合法校验函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • php身份证验证相关类

    本程序可以根据身份证信息来获取星座,生肖,性别,年龄等等一些相关的信息了,转的一个实例大家可参考。 代码如下 复制代码 <?php class Idca...2016-11-25
  • C#身份证识别相关技术功能详解

    这篇文章主要介绍了C#身份证识别相关技术详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • PHP 验证身份证是否合法的函数

    本文主要介绍了PHP验证身份证是否合法的函数。具有很好的参考价值,下面跟着小编一起来看下吧...2017-02-18
  • PHP导出csv,身份证出现科学计数法的问题

    朋友的一个网站导出会员信息时,导出的csv文件中的身份证号码显示为科学计数法,最后几位直接显示为0,解决的办法其实很简单 其实这个问题跟用什么语言导出csv文件没有...2016-11-25
  • oracle 身份证校验函数的实例代码

    这篇文章主要介绍了oracle 身份证校验函数,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 使用php实现从身份证中提取生日

    本文给大家分享的是一则使用php实现的从身份证中提取出生日期的函数,非常的简单,有需要的小伙伴可以参考下...2016-05-13
  • 根据身份证号码计算出生日期、年龄、性别(18位) 根据入职时间计算工龄

    根据身份证号码计算出生日期、年龄、性别(18位);根据入职时间计算工龄实现代码,需要的朋友可以参考下...2021-09-22
  • C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)

    这篇文章主要介绍了C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等),本文收集整理了多个扩展函数,简单实用,项目必备,如值范围、在里面吗、是null或""?、是零?等等,需要的朋友可以参考下...2020-06-25
  • C#实现身份证号码验证的方法

    这篇文章主要介绍了C#实现身份证号码验证的方法,通过封装的类文件实例化调用实现了对身份证号码的验证,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • 用PHP写的身份证验证程序

    写了几个身份证方面的函数,个人感觉挺有用的,特别是在网络问卷调查时,对个人信息里的身份证进行验证很有用,但是应者寥寥,还是收在自己的blog里算了。   <?php // 计算身...2016-11-25