根據(jù)運行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。 時間: 2019-11-19 本文介紹[C#]號碼驗證和正則表達(dá)式格式驗證,主要包括[C#]號碼驗證和正則表達(dá)式格式驗證,包括示例,應(yīng)用技巧和基本知識點總結(jié)和注意事項有一定的參考價值,需要的朋友可以參考. 的前兩個省的對應(yīng)編號為: 1. 華北: 北京| 11,天津| 12,河北省| 13,山西省| 14,內(nèi)蒙古自治區(qū)| 15; 2. 東北: 遼寧省|吉林省21 |黑龍江省22 | 23; 3. 華東地區(qū): 上海|江蘇省31 |浙江省32 |安徽省33 |福建省34 |江西省35 |山東省36 | 37; 4. 中國中部: 河南省|湖北省41 |湖南省42 | 43; 5. 華南地區(qū): 廣東省|廣西壯族自治區(qū)44 |海南省45 | 46; 6. 西南: 四川省| 51省,貴州省| 52云南省| 53西藏自治區(qū)| 54重慶市| 50; 7. 西北地區(qū): 陜西省| 61js正則驗證號碼,甘肅省| 62,青海省| 63,寧夏回族自治區(qū)| 64js正則驗證號碼,新疆維吾爾自治區(qū)| 65; 8. 特殊地區(qū): 臺灣(886)| 83,香港特別行政區(qū)(852)| 81,澳門特別行政區(qū)(853)| 82. 省市代碼下載: 鏈接: 提取代碼: q11r using System; namespace ConnUtils { /**************************************************************************************/ /************************************號碼的驗證*************************************/ /**************************************************************************************/ /** * 15位編碼規(guī)則:dddddd yymmdd xx p * dddddd:地區(qū)碼 * yymmdd: 出生年月日 * xx: 順序類編碼,無法確定 * p: 性別,奇數(shù)為男,偶數(shù)為女 * <p /> * 18位編碼規(guī)則:dddddd yyyymmdd xxx y * dddddd:地區(qū)碼 * yyyymmdd: 出生年月日 * xxx:順序類編碼,無法確定,奇數(shù)為男,偶數(shù)為女 * y: 校驗碼,該位數(shù)值可通過前17位計算獲得 * <p /> * 18位號碼加權(quán)因子為(從右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ] * 驗證位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] * 校驗位計算公式:Y_P = mod( ∑(Ai×Wi),11 ) * i為號碼從右往左數(shù)的 2...18 位; Y_P為腳丫校驗碼所在校驗碼數(shù)組位置 **/ public class IdentityCardValidation { /// <summary> /// 驗證合理性 /// </summary> /// <param name="idNumber">號</param> /// <returns></returns> public static bool CheckIdCard(string idNumber) { if (idNumber.Length == 18) { var check = CheckIdCard18(idNumber); return check; } if (idNumber.Length != 15) return false; { var check = CheckIdCard15(idNumber); return check; } } /// <summary> /// 18位號碼驗證 /// </summary> private static bool CheckIdCard18(string idNumber) { if (long.TryParse(idNumber.Remove(17), out var n) == false || n < Math.Pow(10, 16) || long.TryParse(idNumber.Replace('x', '0').Replace('X', '0'), out n) == false) { return false;//數(shù)字驗證 } //省份編號 const string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"; if (address.IndexOf(idNumber.Remove(2), StringComparison.Ordinal) == -1) { return false;//省份驗證 } var birth = idNumber.Substring(6, 8).Insert(6, "-").Insert(4, "-"); if (DateTime.TryParse(birth, out _) == false) { return false;//生日驗證 } string[] arrArrifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(','); string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(','); char[] Ai = idNumber.Remove(17).ToCharArray(); int sum = 0; for (int i = 0; i < 17; i++) { // 加權(quán)求和 sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString()); } //得到驗證碼所在位置 Math.DivRem(sum, 11, out var y); var x = idNumber.Substring(17, 1).ToLower(); var yy = arrArrifyCode[y]; if (arrArrifyCode[y] != idNumber.Substring(17, 1).ToLower()) { return false;//校驗碼驗證 } return true;//符合GB11643-1999標(biāo)準(zhǔn) } /// <summary> /// 15位號碼驗證 /// </summary> private static bool CheckIdCard15(string idNumber) { long n = 0; if (long.TryParse(idNumber, out n) == false || n < Math.Pow(10, 14)) { return false;//數(shù)字驗證 } string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"; if (address.IndexOf(idNumber.Remove(2)) == -1) { return false;//省份驗證 } string birth = idNumber.Substring(6, 6).Insert(4, "-").Insert(2, "-"); DateTime time = new DateTime(); if (DateTime.TryParse(birth, out time) == false) { return false;//生日驗證 } return true; } } }
|
溫馨提示:喜歡本站的話,請收藏一下本站!