asp.net实现根据身份证判断性别和生日

发布时间:2020-11-12编辑:脚本学堂
asp.net中实现根据身份证判断性别和生日,详细代码如下所示。

 

复制代码 代码示例:

<%@ Page language="c#" Codebehind="CordBirthday.aspx.cs" AutoEventWireup="false" Inherits="CodeDatum.birthday.CordBirthday" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>CordBirthday</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="javascript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  <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>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <table align="center">
    <tr>
     <td align="center">身份证:<input type="text" name="idCard" id="idCard"></td>
    </tr>
    <tr>
     <td align="center">性&nbsp;&nbsp;&nbsp;&nbsp;别:<input type="text" name="sex" id="sex"></td>
    </tr>
    <tr>
     <td align="center">生&nbsp;&nbsp;&nbsp;&nbsp;日:<input type="text" name="birthday" id="birthday"></td>
    </tr>
    <tr>
     <td align="center"><input type="button" onclick="showBirthday(document.all.idCard.value)" value="OK"></td>
    </tr>
   </table>
  </form>
 </body>
</HTML>