`

输入身份证号码查看图片(C#)

    博客分类:
  • C#
阅读更多
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace chx01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void btnView_Click(object sender, EventArgs e)
        {
            //15位身份证:省(2)市(2)区[县](2)年(2)月(2)日(2)+3序列号[奇数分配给男性/偶数分配给女性]
            //15位升级为18位:第一点:出生年前面都加上19 第二点:第18位叫做校验位,也就是说第18位要从前17位计算而来
            //身份证目前可能会见到15位和18位两种
            //如果是15位身份证,那么我们取第7、8位就是出生年
            //如果是18位身份证,先校验用户输入的身份证是否合法,如果合法再取7-10位,就是出生年
            int age = 0;
            int year = 0;
            string id = txtId.Text.Trim();
            if(id.Length == 15)
            {
                year = Convert.ToInt32(id.Substring(6, 2)) + 1900;
               
            }
            else if(id.Length == 18)
            {
                if(!this.CheckCardId(id))
                {
                    MessageBox.Show("身份证号码输入有误,请检查!");
                    return;
                }
                year = Convert.ToInt32(id.Substring(6, 4));
                
            }
            else
            {
                MessageBox.Show("身份证号码长度输入有误!");
            }

            age = DateTime.Now.Year - year;
            if (age >= 18)
            {
                pic.Visible = true;
            }
            else
            {
                MessageBox.Show("你太小了,回家看动画片吧!");
            }
        }
        //校验身份证号,如果正确则返回true,否则返回false
        private bool CheckCardId(string id)
        {
            int[] wQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
            string checkWei = "10X98765432";

            string number17 = id.Substring(0, 17);
            string number18 = id.Substring(17);

            int sum = 0;
            for(int i = 0;i < 17; i++)
            {
                sum = sum + Convert.ToInt32(number17[i].ToString()) * wQuan[i];
            }

            int mod = sum % 11;
            string result = checkWei[mod].ToString();
            if(number18.Equals(result, StringComparison.OrdinalIgnoreCase))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private void txtId_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar < '0' || e.KeyChar > '9')
            {//输入数字以外的字符就阻止掉
                e.Handled = true;
            }
            //如果第18位输入的字符是x,则不阻止
            if((txtId.SelectionStart == 17) && (e.KeyChar == 'x' || e.KeyChar == 'X'))
            {
                e.Handled = false;
            }
            //不阻止backspace
            if(e.KeyChar == 8)
            {
                e.Handled = false;
            }
        }

        private void txtId_TextChanged(object sender, EventArgs e)
        {
            pic.Visible = false;
        }
    }
}

 

分享到:
评论

相关推荐

    身份证图片识别工具C#【标准版】

    身份证图片识别工具C#【标准版】是一款基于C#编程语言开发的应用程序,主要用于自动识别身份证上的文字信息,包括姓名、性别、出生日期、地址、身份证号码等关键字段。这款工具利用了光学字符识别(OCR)技术,可以...

    身份证号码验证示例源码.rar

    在这个示例中,`Default.aspx`可能包含一个表单,用户可以在其中输入他们的身份证号码进行验证。 `web.config`是ASP.NET应用程序的配置文件,它包含了应用程序的配置信息,如数据库连接字符串、身份验证模式、错误...

    C#(VS2017)阿里云云市场身份证识别demo

    在调用识别服务之前,可能需要对原始身份证图片进行预处理,如调整尺寸、裁剪或旋转,以满足API的输入要求。在本Demo中,可能会包含这部分功能的实现。 5. **JSON解析** 阿里云的身份证识别API返回的结果通常是一...

    身份证邮编区号三合一查询系统

    通过这个系统,用户可以输入身份证号码,系统会返回对应的身份信息,包括但不限于姓名、性别、出生日期和户籍所在地。同时,用户也可以查询邮政编码,了解中国各地区的邮政服务信息,便于邮寄物品或填写地址。此外,...

    C#图片识别

    【C#图片识别】是一种利用计算机视觉和光学字符识别(OCR)技术,从图像中提取文字内容的技术。在本项目中,重点是使用Asprise OCR工具包,这是一款专为C#开发的OCR库,能够读取图片上的数字、英文和符号。对于汉字...

    身份证识别程序

    1. **图像处理**:首先,程序需要对输入的身份证图片进行预处理,如灰度化、二值化、噪声消除等,以便后续分析。这些步骤有助于突出文字区域,降低背景干扰。 2. **文字检测(OCR)**:使用光学字符识别(OCR)技术...

    基于C#的医院电子病历系统源码.zip

    2. **MVC模式**:在C#中,常使用Model-View-Controller(MVC)模式来组织代码,模型负责数据处理,视图展示界面,控制器处理用户输入。 三、数据库设计 1. **实体设计**:电子病历系统涉及的实体包括患者信息、...

    C# .Net 工具类大部分全部集成

    身份证验证则可能包括长度检查、校验码计算等步骤,以确认身份证号码的有效性。这些工具类可以极大地简化验证逻辑,提高代码的可读性和复用性。 其次,缓存管理是优化应用程序性能的重要手段。.NET框架提供了多种...

    明日科技C#开发入门及项目实战

    实例116 使用密封类封装个人身份证信息 实例117 使用迭代器显示公交车站点 实例118 通过迭代器实现文字的动态效果 实例119 使用分部类制作一个计算器 实例120 使用分部类显示员工信息 实例121 使用泛型存储不同类型...

    人脸识别C#源码(静态活体检测,不用动作配合)

    活体检测是人脸识别中的一个重要环节,旨在判断输入的人脸图像是否来自一个真实的人,而非照片、视频或其他复制品。静态活体检测意味着用户无需做出特定动作,系统通过分析面部细节、纹理、阴影等信息来判断真实性,...

    C#公共通用类

    身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量...

    C# 控件 缩写 标准

    - **应用场景**:电话号码、身份证号输入等。 11. **cdrMonthCalendar**: 月历(MonthCalendar)。 - **简介**:提供了一个月历视图。 - **应用场景**:查看日期、选择日期范围等。 12. **icnNotifyIcon**: ...

    百度AI_文字识别C#方法实例

    该项目包括身份证识别功能,通用文字识别功能以及手写文字识别功能.其他功能与这几个功能调用大同小异.这些功能足够你学习和了解,你只需要输入自己的API Key和 Secret Key就能体验到百度AI文字识别.

    大量C#编程题目..pdf

    本资源汇编了大量C#编程题目,涵盖了C#程序设计的各种方面,包括基本编程题目、对象oriented编程、数据结构和算法、文件输入/输出、事件处理、多线程编程、网络编程等。 基本编程题目 1. 从键盘输入一个正整数,按...

    OCR.zip_OCR_OCR C#_c# ocr_in_office ocr

    这种技术在各种领域都有广泛应用,例如文档扫描、身份证读取、纸质资料数字化等。在C#中,开发人员可以利用OCR库来实现这一功能,使程序具备识别图像内文字的能力。 【C#中的OCR实现】 C#作为一个强大的.NET编程...

    C#编程经验技巧宝典

    121 &lt;br&gt;0200 如何使用正则表达式验证电话号码 121 &lt;br&gt;0201 如何使用正则表达式验证输入密码条件 121 &lt;br&gt;0202 如何使用正则表达式验证邮政编号 121 &lt;br&gt;0203 如何使用正则表达式验证手机号 ...

    C#练习题

    本文档提供了30多个C#基础练习题,涵盖了C#语言的各种基础知识点,包括控制结构、函数、数组、类和对象、继承、多态、接口、事件、文件输入/输出、网络编程等。 知识点1:控制结构 从键盘输入一个正整数,按数字的...

    C#公共类通用类非常齐全

    身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量...

Global site tag (gtag.js) - Google Analytics