標籤:end verify init thread event 正則 表達 bre string
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"; } }}
C#編程:Regex驗證身份證校正碼-10