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#编程语言开发的应用程序,主要用于自动识别身份证上的文字信息,包括姓名、性别、出生日期、地址、身份证号码等关键字段。这款工具利用了光学字符识别(OCR)技术,可以...
在这个示例中,`Default.aspx`可能包含一个表单,用户可以在其中输入他们的身份证号码进行验证。 `web.config`是ASP.NET应用程序的配置文件,它包含了应用程序的配置信息,如数据库连接字符串、身份验证模式、错误...
在调用识别服务之前,可能需要对原始身份证图片进行预处理,如调整尺寸、裁剪或旋转,以满足API的输入要求。在本Demo中,可能会包含这部分功能的实现。 5. **JSON解析** 阿里云的身份证识别API返回的结果通常是一...
通过这个系统,用户可以输入身份证号码,系统会返回对应的身份信息,包括但不限于姓名、性别、出生日期和户籍所在地。同时,用户也可以查询邮政编码,了解中国各地区的邮政服务信息,便于邮寄物品或填写地址。此外,...
【C#图片识别】是一种利用计算机视觉和光学字符识别(OCR)技术,从图像中提取文字内容的技术。在本项目中,重点是使用Asprise OCR工具包,这是一款专为C#开发的OCR库,能够读取图片上的数字、英文和符号。对于汉字...
1. **图像处理**:首先,程序需要对输入的身份证图片进行预处理,如灰度化、二值化、噪声消除等,以便后续分析。这些步骤有助于突出文字区域,降低背景干扰。 2. **文字检测(OCR)**:使用光学字符识别(OCR)技术...
2. **MVC模式**:在C#中,常使用Model-View-Controller(MVC)模式来组织代码,模型负责数据处理,视图展示界面,控制器处理用户输入。 三、数据库设计 1. **实体设计**:电子病历系统涉及的实体包括患者信息、...
身份证验证则可能包括长度检查、校验码计算等步骤,以确认身份证号码的有效性。这些工具类可以极大地简化验证逻辑,提高代码的可读性和复用性。 其次,缓存管理是优化应用程序性能的重要手段。.NET框架提供了多种...
实例116 使用密封类封装个人身份证信息 实例117 使用迭代器显示公交车站点 实例118 通过迭代器实现文字的动态效果 实例119 使用分部类制作一个计算器 实例120 使用分部类显示员工信息 实例121 使用泛型存储不同类型...
活体检测是人脸识别中的一个重要环节,旨在判断输入的人脸图像是否来自一个真实的人,而非照片、视频或其他复制品。静态活体检测意味着用户无需做出特定动作,系统通过分析面部细节、纹理、阴影等信息来判断真实性,...
身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量...
- **应用场景**:电话号码、身份证号输入等。 11. **cdrMonthCalendar**: 月历(MonthCalendar)。 - **简介**:提供了一个月历视图。 - **应用场景**:查看日期、选择日期范围等。 12. **icnNotifyIcon**: ...
该项目包括身份证识别功能,通用文字识别功能以及手写文字识别功能.其他功能与这几个功能调用大同小异.这些功能足够你学习和了解,你只需要输入自己的API Key和 Secret Key就能体验到百度AI文字识别.
本资源汇编了大量C#编程题目,涵盖了C#程序设计的各种方面,包括基本编程题目、对象oriented编程、数据结构和算法、文件输入/输出、事件处理、多线程编程、网络编程等。 基本编程题目 1. 从键盘输入一个正整数,按...
这种技术在各种领域都有广泛应用,例如文档扫描、身份证读取、纸质资料数字化等。在C#中,开发人员可以利用OCR库来实现这一功能,使程序具备识别图像内文字的能力。 【C#中的OCR实现】 C#作为一个强大的.NET编程...
121 <br>0200 如何使用正则表达式验证电话号码 121 <br>0201 如何使用正则表达式验证输入密码条件 121 <br>0202 如何使用正则表达式验证邮政编号 121 <br>0203 如何使用正则表达式验证手机号 ...
本文档提供了30多个C#基础练习题,涵盖了C#语言的各种基础知识点,包括控制结构、函数、数组、类和对象、继承、多态、接口、事件、文件输入/输出、网络编程等。 知识点1:控制结构 从键盘输入一个正整数,按数字的...
身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量...