c#身份证验证正则表达式
时间: 2023-12-29 22:26:37 浏览: 236
以下是C#中使用正则表达式进行身份证验证的示例代码:
```csharp
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string idCardNumber = "身份证号码"; // 替换为要验证的身份证号码
// 使用正则表达式验证身份证格式
string pattern = @"^\d{17}[\dXx]$";
bool isFormatValid = Regex.IsMatch(idCardNumber, pattern);
if (isFormatValid)
{
// 验证身份证最后一位的有效性
bool isValid = IsValidIdCardNumber(idCardNumber);
if (isValid)
{
Console.WriteLine("身份证号码合法");
}
else
{
Console.WriteLine("身份证号码不合法");
}
}
else
{
Console.WriteLine("身份证号码格式不正确");
}
}
// 验证身份证最后一位的有效性
public static bool IsValidIdCardNumber(string idCardNumber)
{
int[] factors = { 7, 9, 10, 5, 8, 4, 2,1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
char[] checkDigits = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
int sum = 0;
for (int i = 0; i < 17; i++)
{
sum += factors[i] * int.Parse(idCardNumber[i].ToString());
}
int remainder = sum % 11;
char checkDigit = checkDigits[remainder];
return idCardNumber[17] == checkDigit;
}
}
```
阅读全文