1 /// 2 /// 根據身份證獲取身份證信息 3 /// 18位身份證 4 /// 0地區代碼(1~6位,其中1、2位數為各省級政府的代碼,3、4位數為地、市級政府的代碼,5、6位數為縣、區級政府代碼) 5 /// 1出生年月日(7~14位) 6 /// 2順序號(15~17位單數為男性分配碼,... ...
1 /// <summary> 2 /// 根據身份證獲取身份證信息 3 /// 18位身份證 4 /// 0地區代碼(1~6位,其中1、2位數為各省級政府的代碼,3、4位數為地、市級政府的代碼,5、6位數為縣、區級政府代碼) 5 /// 1出生年月日(7~14位) 6 /// 2順序號(15~17位單數為男性分配碼,雙數為女性分配碼) 7 /// 3性別 8 /// 9 /// 15位身份證 10 /// 0地區代碼 11 /// 1出生年份(7~8位年,9~10位為出生月份,11~12位為出生日期 12 /// 2順序號(13~15位),並能夠判斷性別,奇數為男,偶數為女 13 /// 3性別 14 /// </summary> 15 /// <param name="cardId"></param> 16 /// <returns></returns> 17 public string[] GetIdCardInfo(string cardId) 18 { 19 string[] info = new string[4]; 20 21 if (string.IsNullOrEmpty(cardId)) 22 { 23 return info; 24 } 25 26 try 27 { 28 System.Text.RegularExpressions.Regex regex = null; 29 if (cardId.Length == 18) 30 { 31 regex = new Regex(@"^\d{17}(\d|x|X)$"); 32 if (regex.IsMatch(cardId)) 33 { 34 35 info.SetValue(cardId.Substring(0, 6), 0); 36 info.SetValue(DateTime.ParseExact(cardId.Substring(6, 8), "yyyyMMdd", CultureInfo.CurrentCulture).ToString("yyyy-MM-dd"), 1); 37 info.SetValue(cardId.Substring(14, 3), 2); 38 info.SetValue(Convert.ToInt32(info[2]) % 2 != 0 ? "男" : "女", 3); 39 } 40 } 41 else if (cardId.Length == 15) 42 { 43 regex = new Regex(@"^\d{15}"); 44 if (regex.IsMatch(cardId)) 45 { 46 info.SetValue(cardId.Substring(0, 6), 0); 47 info.SetValue(DateTime.ParseExact(cardId.Substring(6, 6), "yyyyMMdd", CultureInfo.CurrentCulture).ToString("yyyy-MM-dd"), 1); 48 info.SetValue(cardId.Substring(12, 3), 2); 49 info.SetValue(Convert.ToInt32(info[2]) % 2 != 0 ? "男" : "女", 3); 50 } 51 } 52 } 53 catch (Exception ex) 54 { 55 info[0] = ex.Message; 56 } 57 58 return info; 59 }