C#.NET 身份证号码格式正则表达式验证
C#.NET 身份证号码格式正则表达式验证
C# Code: /// <summary> /// 判断是否是正确的身份证格式,只支持18位 /// </summary> /// <param name="s"></param> /// <returns></returns> /// public static bool IsPersonID(string str) { if (str.IsNullOrEmpty() | !Regex.IsMatch(str.ToStringEx(), @"^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}(((19|20)\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((19|20)\d{2}(0[13578]|1[02])31)|((19|20)\d{2}02(0[1-9]|1\d|2[0-8]))|((19|20)([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)$")) return false; if (str.ToString().Length == 18) { string birthday = string.Empty; birthday = String.Format("{0}-{1}-{2}", str.ToString().Substring(6, 4), str.ToString().Substring(10, 2), str.ToString().Substring(12, 2)); try { if (DateTime.Parse(birthday) > DateTime.Now) return false; } catch (Exception ex) { return false; } char[] code = str.ToString().ToArray(); //加权因子 int[] factor = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; //校验位 char[] parity = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; int sum = 0; for (int i = 0; i < 17; i ) { sum = code[i].ToString().ToIntEx() * factor[i]; } char last = parity[sum % 11]; try { if (last != char.ToUpper(code[17])) { return false; } } catch (Exception) { if (last != code[17]) { return false; } } } return true; } //来源:C/S框架网(www.csframework.com) QQ:1980854898
参考文档:
C#正则表达式整理备忘 C#使用正则表达式判断手机号码 C#.NET IP地址正则表达式验证 C#.NET 手机号码正则表达式验证 C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转 C#.NET DateTime时间格式转换为Unix时间戳格式(int类型) C#.NET 定义动态对象dynamic以及属性和方法 C#.NET 定义动态对象dynamic以及转换JSON字符串 C#.NET WEBAPI 接口设计与调用 C#.NET通过CodeDom.Compiler动态编译计算表达式的值 C#正则表达式查找或替换指定字符串(标识)范围的内容 C#使用正则表达式移除所有的Html标记,返回纯文本 C#使用正则表达式替换或去掉半角标点符号 C#正则表达式判断url是否网络路径(http/ftp/https三种协议) C#正则表达式替换SQL单引号中间的空格
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |