ASP.NET身份证识别判定

实现身份证的判定 前17位都是数字最后一位X或者x 18位都是数字 查出出生年月性别

if (txtId.Text.Length!= 18)

        {
             //18位身份证号码

            Response.Write("<script>alert('请输入18位身份证号码!')</script>");

           return;

        }
        else {
            // 18位全是数字
       
    System.Text.ASCIIEncoding asci = new System.Text.ASCIIEncoding();
            byte[] bystr = asci.GetBytes(txtId.Text);

          //  第18位是否为x或者X

            if (bystr[17]==88 || bystr[17]==120)

            {   

              //前17位都是数字

                for (int i = 0; i < bystr.Length - 1; i++)
                {
                    if (bystr[i] < 48 || bystr[i] > 57)
                    {

                                Response.Write("<script>alert('前17位都是数字')</script>");

                                      return;

                    }
                    else
                    {
                        //第7-10位是出身的年
                        // 倒数第二位号码奇数为男偶数为女
                        string sex;
                        string year = txtId.Text.Substring(6, 4);
                        if (bystr[16] % 2 == 0)
                        {
                            sex = "男";
                        }
                        else
                        {
                            sex = "女";
                        }
                       //用一个label控件接收
                        lblBoth.Text = "您是" + year + "出生的" + "性别为:" + sex;
                    }
                }
             
            }

            else {

                   //如果18位都是数字

                for (int i = 0; i < bystr.Length; i++)
                {
                    if (bystr[i] < 48 || bystr[i] > 57)
                    {      

                                  Response.Write("<script>alert('18位都是数字!')</script>");

                                      return;

                    }

                    else
                    {
                        //第7-10位是出身的年
                        // 倒数第二位号码奇数为男偶数为女
                        string sex;
                        string year = txtId.Text.Substring(6, 4);
                        if (bystr[16] % 2 == 0)
                        {
                            sex = "男";
                        }
                        else
                        {
                            sex = "女";
                        }

                        lblBoth.Text = "您是" + year + "出生的" + "性别为:" + sex;
                    }
                }
            }


          


        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值