C#编程:正则表达式验证身份证校验码-10
2024-08-29 01:03:55
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;
using System.Text.RegularExpressions;
namespace IDCard
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//参考:http://baike.baidu.com/item/%E8%BA%AB%E4%BB%BD%E8%AF%81%E6%A0%A1%E9%AA%8C%E7%A0%81
//校验长度和数字合法性
string regular = @"\d{17}[\d|X]{1}";
bool ret = false;
Regex regex = new Regex(regular);
ret = regex.IsMatch(textBox1.Text);
//校验位合法性
if (ret == true)
{
int sum = 0;
int[] a = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
string str = textBox1.Text;
for (int i = 0; i < 17; i++)
{
sum += a[i] * (int)(str[i]-48);//0的assii码为48
}
int mod = sum % 11;
int[] b = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
char[] c = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
char verify='0';
for (int i=0; i<11 ;i++)
{
if (mod == b[i])
{
verify = c[i];
break;
}
}
if ((char)str[17] == verify)
{
ret = true;
}
else
{
ret = false;
}
}
MessageBox.Show(ret.ToString());
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "34052419800101001X";
}
}
}
最新文章
- grunt自定义任务——合并压缩css和js
- windows server 2008 wamp安装报000F15A0解决方法
- 奇怪吸引子---ShimizuMorioka
- NET4.5之初识async与await
- uiatuomator提示shortMsg=java.lang.RuntimeException
- Effective java-泛型思维导图
- CoreGraphics 之CGAffineTransform仿射变换(3)
- MySQL最常用字符串函数
- Linux下创建root权限的账号osadmin
- MyBatis insert/delete/update 的返回值
- 贪心算法----区间覆盖问题(POJ2376)
- 创建Windows服务
- 用MyEclipse自带工具生成WebService客户端代码
- 利用salt搭建hadoop集群
- dubbo多网卡时,服务提供者的错误IP注册到注册中心导致消费端连接不上
- Netty 实现HTTP文件服务器
- cookie和session必须了解的东西
- Linux下可视化空间分析工具ncdu
- php redis 操作手册
- 精选Java面试题(二)
热门文章
- 如何在VS中快速导入新的源码以及文件夹
- NIO(一)缓冲区
- 转载 tomcat6下项目移植到tomcat7下出问题的解决办法
- 使用CreateProcess函数运行其他程序
- yii:高级应用程序搭建数据库的详细流程
- linux 命令——35 ln(转)
- bzoj3887: [Usaco2015 Jan]Grass Cownoisseur
- 2018.5.25 Oracle相关的函数命令
- python_14_sys_mod
- Bootstrap 弹出框(Popover)插件