目前手機號碼運營商正則判斷功能
阿新 • • 發佈:2019-02-18
1、目前運營商增加了好多虛擬號段,在網上彙總了一下號段的規則,在此做下整理.
170號段前4位可以用來區分與虛擬運營商合作的基礎運營,電信是1700;聯通是1709;移動是1705。
工信部再向中國聯通核發了9000萬碼號資源,用以支援虛擬運營商開展業務。在此次核發新碼號資源後,
中國聯通已經擁有1704、1707、1708、1709,1710、1711、1712、1713、1714、1715、1716、1717、1718、1719共14個千萬級號段,並且171整個億級號段都已歸屬聯通。
中國電信目前虛擬運營商號段為:1700、1701、1702共3個千萬級號段,累計3000萬號碼資源;
中國移動目前虛擬運營商號段為:1703、1705、1706共3個千萬級號段,累計3000萬號碼資源。
至此,中國聯通總共擁有了1.4億號碼資源,成為三大運營商中擁有虛擬運營商業務號碼最多的一家。
知道了虛擬號段規則就OK了下面給出正則匹配規則
var isChinaMobile = "^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\\d{7,8}$"; //移動
var isChinaUniom = "^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\\d{7,8}|$"; //聯通
var isChinaTelcom = "^(?:133|153|1700|1701|1702|177|173|18[019])\\d{7,8
規則是這樣,js中使用就不寫了,寫下C#的匹配,需要的直接拿走就可以用
好了記錄完了,下次有新號段可以直接更新下就好public string GetRegex(string input) { var isChinaMobile = "^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\\d{7,8}$"; //移動 var isChinaUnion = "^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\\d{7,8}$"; //聯通 var isChinaTelcom = "^(?:133|153|1700|1701|1702|177|173|18[019])\\d{7,8}$"; // 電信 Regex regex = new Regex(isChinaMobile); if (regex.IsMatch(input)) { return "移動"; } regex = new Regex(isChinaUnion); if (regex.IsMatch(input)) { return "聯通"; } regex = new Regex(isChinaTelcom); if (regex.IsMatch(input)) { return "電信"; } var result = DealFictitiousNo(input); return result; }