ASP.NET技巧:根据身份证判断性别和生日

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-02 00:44 点击:

<%@ 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;&

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • asp.net 设置GridView的选中行的实现代码
    • C#高级编程:数据库连接[1]
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET&#160;GridView列表代码示例
    • Asp.net MVC源码分析--Action Filter的链式调用
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1