js根据15,18位身份证号获取生日与性别

本文介绍了一段用于解析和验证中国身份证号码的JavaScript代码。该代码能够从15位或18位身份证号码中提取出生日期和性别信息,并进行基本的有效性检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

15位身份证号:第6、7位为年份,8、9位为月份,10、11为日。最后一位为性别,男为奇数,女为偶数。

  18位身份证号:第6、7、8、9位为年份,10、11位为月份,12、13为日。最后一位为性别,男为奇数,女为偶数。

 

$('#idCard').blur(function(){
var idcard = $('#idCard').val();
if(idcard.length==15 && idcard.match('^[0-9]*$')!=null){
var birthdayValue = idcard.charAt(6) + idcard.charAt(7);//年份
if (parseInt(birthdayValue) < 14) {
birthdayValue = '20' + birthdayValue;//年份
}
else {
birthdayValue = '19' + birthdayValue;//年份
}
if(idcard.charAt(8)>1){
$('#idCardSpan').text('身份证号错误');
return false;
}else if(idcard.charAt(8)==0){
if(idcard.charAt(9)>9){
$('#idCardSpan').text('身份证号错误');
return false;
}
}else if(idcard.charAt(8)==1){
if(idcard.charAt(9)>2){
$('#idCardSpan').text('身份证号错误');
return false;
}
}
if(idcard.charAt(10)>3){
$('#idCardSpan').text('身份证号错误');
return false;
}else if(idcard.charAt(10)<3){
if(idcard.charAt(11)>9){
$('#idCardSpan').text('身份证号错误');
return false;
}
}else if(idcard.charAt(10)==3){
if(idcard.charAt(11)>1){
$('#idCardSpan').text('身份证号错误');
return false;
}
}
birthdayValue = birthdayValue+'-'+idcard.charAt(8)+idcard.charAt(9)+'-'+idcard.charAt(10)+idcard.charAt(11);
$('#birthday').val(birthdayValue);
if(parseInt(idcard.charAt(14)/2)*2==idcard.charAt(14)){
$('#sex1').attr('checked','checked');
$('#sex2').attr('checked','');
}else{
$('#sex2').attr('checked','checked');
$('#sex1').attr('checked','');
}
}
else if(idcard.length==18 && idcard.substring(0,idcard.length-1).match('^[0-9]*$')!=null){
var birthdayValue = idcard.charAt(6) + idcard.charAt(7)+ idcard.charAt(8)+ idcard.charAt(9);//年份
if(idcard.charAt(10)>1){
$('#idCardSpan').text('身份证号错误');
return false;
}else if(idcard.charAt(10)==0){
if(idcard.charAt(11)>9){
$('#idCardSpan').text('身份证号错误');
return false;
}
}else if(idcard.charAt(10)==1){
if(idcard.charAt(11)>2){
$('#idCardSpan').text('身份证号错误');
return false;
}
}
if(idcard.charAt(12)>3){
$('#idCardSpan').text('身份证号错误');
return false;
}else if(idcard.charAt(12)<3){
if(idcard.charAt(13)>9){
$('#idCardSpan').text('身份证号错误');
return false;
}
}else if(idcard.charAt(12)==3){
if(idcard.charAt(13)>1){
$('#idCardSpan').text('身份证号错误');
return false;
}
}
birthdayValue = birthdayValue+'-'+idcard.charAt(10)+idcard.charAt(11)+'-'+idcard.charAt(12)+idcard.charAt(13);
$('#birthday').val(birthdayValue);
if(parseInt(idcard.charAt(16)/2)*2==idcard.charAt(16)){
$('#sex1').attr('checked','checked');
$('#sex2').attr('checked','');
}else{
$('#sex2').attr('checked','checked');
$('#sex1').attr('checked','');
}
}else{
$('#birthday').val('');
$('#idCardSpan').text('身份证号错误');
return false;
}
});

$('#idCard').focus(function(){
$('#birthday').val('');
if($('#sex1').attr('checked')=='checked'){
$('#sex1').attr('checked',false);//清空性别选择
}
if($('#sex2').attr('checked')=='checked'){
$('#sex2').attr('checked',false);
}
$('#idCardSpan').text('');
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值