1.
/// <summary> /// 根据身份证获取身份证信息 /// 18位身份证 /// 0地区代码(1~6位,其中1、2位数为各省级*的代码,3、4位数为地、市级*的代码,5、6位数为县、区级*代码) /// 1出生年月日(7~14位) /// 2顺序号(15~17位单数为男性分配码,双数为女性分配码) /// 3性别 /// /// 15位身份证 /// 0地区代码 /// 1出生年份(7~8位年,9~10位为出生月份,11~12位为出生日期 /// 2顺序号(13~15位),并能够判断性别,奇数为男,偶数为女 /// 3性别 /// </summary> /// <param name="cardId"></param> /// <returns></returns> public string[] GetIdCardInfo(string cardId) { string[] info = new string[4]; if (string.IsNullOrEmpty(cardId)) { return info; } try { System.Text.RegularExpressions.Regex regex = null; if (cardId.Length == 18) { regex = new Regex(@"^\d{17}(\d|x|X)$"); if (regex.IsMatch(cardId)) { info.SetValue(cardId.Substring(0, 6), 0); info.SetValue(DateTime.ParseExact(cardId.Substring(6, 8), "yyyyMMdd", CultureInfo.CurrentCulture).ToString("yyyy-MM-dd"), 1); info.SetValue(cardId.Substring(14, 3), 2); info.SetValue(Convert.ToInt32(info[2]) % 2 != 0 ? "男" : "女", 3); } } else if (cardId.Length == 15) { regex = new Regex(@"^\d{15}"); if (regex.IsMatch(cardId)) { info.SetValue(cardId.Substring(0, 6), 0); info.SetValue(DateTime.ParseExact(cardId.Substring(6, 6), "yyyyMMdd", CultureInfo.CurrentCulture).ToString("yyyy-MM-dd"), 1); info.SetValue(cardId.Substring(12, 3), 2); info.SetValue(Convert.ToInt32(info[2]) % 2 != 0 ? "男" : "女", 3); } } } catch (Exception ex) { info[0] = ex.Message; } return info; }
2.身份证前2位就是省 前6位就是省市县
Dictionary<int, string> openWith = new Dictionary<int, string>(); openWith.Add(11, "北京市"); openWith.Add(12, "天津市"); openWith.Add(13, "河北省"); openWith.Add(14, "山西省"); openWith.Add(15, "内蒙古自治区"); openWith.Add(21, "辽宁省"); openWith.Add(22, "吉林省"); openWith.Add(23, "黑龙江省"); openWith.Add(31, "上海市"); openWith.Add(32, "江苏省"); openWith.Add(33, "浙江省"); openWith.Add(34, "安徽省"); openWith.Add(35, "福建省"); openWith.Add(36, "江西省"); openWith.Add(37, "山东省"); openWith.Add(41, "河南省"); openWith.Add(42, "湖北省"); openWith.Add(43, "湖南省"); openWith.Add(44, "广东省"); openWith.Add(45, "广西壮族自治区"); openWith.Add(45, "海南省"); openWith.Add(50, "重庆市"); openWith.Add(51, "四川省"); openWith.Add(52, "贵州省"); openWith.Add(53, "云南省"); openWith.Add(54, "*自治区"); openWith.Add(61, "陕西省"); openWith.Add(62, "甘肃省"); openWith.Add(63, "青海省"); openWith.Add(64, "宁夏回族自治区"); openWith.Add(65, "**自治区"); openWith.Add(71, "*省"); openWith.Add(81, "香港特别行政区"); openWith.Add(82, "澳门特别行政区"); }