js根据身份证号码判断性别和年龄

/**这是一个超实用的用js根据身份证号码判断性别男女的特效代码,详细看下面的*/
/**
根据身份证号码判断性别
15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日
18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,
第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。
*/
function showBirthday(){
var val = $("#idCard").val().trim();//输入的身份证号码
var birthdayValue;
if(15==val.length){ //15位身份证号码
birthdayValue = val.charAt(6)+val.charAt(7);
if(parseInt(birthdayValue)<10){
birthdayValue = '20'+birthdayValue;
}else{
birthdayValue = '19'+birthdayValue;
}
//性别判断,给radio男女赋值,出生日期赋值
birthdayValue=birthdayValue+'-'+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11);
if(parseInt(val.charAt(14)/2)*2!=val.charAt(14))
$("#RadioGroup1_0").attr("checked",true);
else
$("#RadioGroup1_1").attr("checked",true);
$("#datepicker2").val(birthdayValue);
}
if(18==val.length){ //18位身份证号码
//性别判断,给radio男女赋值,出生日期赋值
birthdayValue=val.charAt(6)+val.charAt(7)+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11)
+'-'+val.charAt(12)+val.charAt(13);
if(parseInt(val.charAt(16)/2)*2!=val.charAt(16))
$("#RadioGroup1_0").attr("checked",true);
else
$("#RadioGroup1_1").attr("checked",true);
$("#datepicker2").val(birthdayValue);
}
}
// 18位身份证号最后一位校验
function IDCard(Num){
if(Num.length!=18)
return false;
var x=0;
var y='';
for(i=18;i>=2;i--)
x = x + (square(2,(i-1))%11)*parseInt(Num.charAt(19-i-1));
x%=11;
y=12-x;
if (x==0)
y='1';
if (x==1)
y='0';
if (x==2)
y='X';
return y;
}
// 求得x的y次方
function square(x,y){
var i=1;
for (j=1;j<=y;j++)
i*=x;
return i;
}

原文地址:https://www.cnblogs.com/sunsie/p/5035821.html