根据身份证号码导出生日和性别(JavaScript代码)

<script language="Javascript">
  
function showBirthday(val)
  
{
   
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;
    }

    birthdayValue
=birthdayValue+'-'+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11);
    
if(parseInt(val.charAt(14)/2)*2!=val.charAt(14))
     document.all.sex.value
='男';
    
else
     document.all.sex.value
='女';
    document.all.birthday.value
=birthdayValue;
   }

   
if(18==val.length)
   
//18位身份证号码
•    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))
     document.all.sex.value
='男';
    
else
     document.all.sex.value
='女';
    
if(val.charAt(17)!=IDCard(val))
    
{
     document.all.idCard.style.backgroundColor
='#ffc8c8';
    }

    
else
    
{
     document.all.idCard.style.backgroundColor
='white';
    }

    document.all.birthday.value
=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;
  }

  
</script>

posted on 2009-10-14 22:21 hobo 阅读(1698) 评论(1)  编辑 收藏 引用 所属分类: JavaScript

评论

# re: 根据身份证号码导出生日和性别(JavaScript代码) 2009-12-11 04:17 徐磊

得到  回复  更多评论   

只有注册用户登录后才能发表评论。
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

友情连接

搜索

最新评论

阅读排行榜

评论排行榜