1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: 6: namespace AnkeEdu.Tools
7: { 8: 9: /// <summary>
10: /// 电话号码帮助类
11: /// author:Andrew.He
12: /// 给定一个电话号码,返回电话号码号段所属网络
13: /// </summary>
14: public class PhoneHelper
15: {16: #region mobileRegex 检测号码的正则表达式
17: /// <summary>
18: /// 检测号码的正则表达式
19: /// </summary>
20: private const string mobileRegex = @"(86)?0?1\d{10}";
21: #endregion
22: 23: #region keyValues 手机号段集合,PhoneType.Mobile 移动 PhoneType.Unicom 联通 PhoneType.Telecom 电信
24: /// <summary>
25: /// 手机号段集合,PhoneType.Mobile 移动 PhoneType.Unicom 联通 PhoneType.Telecom 电信
26: /// </summary>
27: private static List<PhoneKeyValue> keyValues = new List<PhoneKeyValue>()
28: {29: new PhoneKeyValue("1340",PhoneType.Mobile),
30: new PhoneKeyValue("1341",PhoneType.Mobile),
31: new PhoneKeyValue("1342",PhoneType.Mobile),
32: new PhoneKeyValue("1343",PhoneType.Mobile),
33: new PhoneKeyValue("1344",PhoneType.Mobile),
34: new PhoneKeyValue("1345",PhoneType.Mobile),
35: new PhoneKeyValue("1346",PhoneType.Mobile),
36: new PhoneKeyValue("1347",PhoneType.Mobile),
37: new PhoneKeyValue("1348",PhoneType.Mobile),
38: new PhoneKeyValue("135",PhoneType.Mobile),
39: new PhoneKeyValue("136",PhoneType.Mobile),
40: new PhoneKeyValue("137",PhoneType.Mobile),
41: new PhoneKeyValue("138",PhoneType.Mobile),
42: new PhoneKeyValue("139",PhoneType.Mobile),
43: new PhoneKeyValue("147",PhoneType.Mobile),
44: new PhoneKeyValue("150",PhoneType.Mobile),
45: new PhoneKeyValue("151",PhoneType.Mobile),
46: new PhoneKeyValue("152",PhoneType.Mobile),
47: new PhoneKeyValue("157",PhoneType.Mobile),
48: new PhoneKeyValue("158",PhoneType.Mobile),
49: new PhoneKeyValue("159",PhoneType.Mobile),
50: new PhoneKeyValue("182",PhoneType.Mobile),
51: new PhoneKeyValue("183",PhoneType.Mobile),
52: new PhoneKeyValue("184",PhoneType.Mobile),
53: new PhoneKeyValue("187",PhoneType.Mobile),
54: new PhoneKeyValue("188",PhoneType.Mobile),
55: new PhoneKeyValue("130",PhoneType.Unicom),
56: new PhoneKeyValue("131",PhoneType.Unicom),
57: new PhoneKeyValue("132",PhoneType.Unicom),
58: new PhoneKeyValue("145",PhoneType.Unicom),
59: new PhoneKeyValue("155",PhoneType.Unicom),
60: new PhoneKeyValue("156",PhoneType.Unicom),
61: new PhoneKeyValue("185",PhoneType.Unicom),
62: new PhoneKeyValue("186",PhoneType.Unicom),
63: new PhoneKeyValue("133",PhoneType.Telecom),
64: new PhoneKeyValue("1349",PhoneType.Telecom),
65: new PhoneKeyValue("153",PhoneType.Telecom),
66: new PhoneKeyValue("180",PhoneType.Telecom),
67: new PhoneKeyValue("181",PhoneType.Telecom),
68: new PhoneKeyValue("189",PhoneType.Telecom)
69: };70: #endregion
71: 72: #region GetPhoneType 检测手机号码是否为对应的手机类别
73: /// <summary>
74: /// 检测手机号码是否为对应的手机类别
75: /// </summary>
76: /// <param name="phoneNo"></param>
77: /// <returns></returns>
78: public static PhoneType GetPhoneType(string phoneNo)
79: {80: if (!IsPhoneNo(phoneNo))
81: {82: return PhoneType.NotPhoneNo;
83: } 84: 85: var model = keyValues.Where(x => phoneNo.StartsWith(x.key)).FirstOrDefault();86: if (model != null)
87: {88: return model.PhoneTypeValue;
89: } 90: 91: return PhoneType.Other;
92: }93: #endregion
94: 95: #region IsPhoneNo 检测号码是否为手机号码
96: /// <summary>
97: /// 检测号码是否为手机号码
98: /// </summary>
99: /// <param name="phoneNo"></param>
100: /// <returns></returns>
101: private static bool IsPhoneNo(string phoneNo)
102: {103: if (string.IsNullOrEmpty(phoneNo))
104: {105: return false;
106: } 107: 108: return System.Text.RegularExpressions.Regex.Match(phoneNo, mobileRegex,
109: System.Text.RegularExpressions.RegexOptions.IgnoreCase | 110: System.Text.RegularExpressions.RegexOptions.ECMAScript).Success; 111: }112: #endregion
113: } 114: 115: #region PhoneKeyValue 手机号段实体
116: /// <summary>
117: /// 手机号段实体
118: /// </summary>
119: public class PhoneKeyValue
120: {121: public PhoneKeyValue(string key,PhoneType type)
122: {123: this.key = key;
124: this.PhoneTypeValue = type;
125: }126: public string key { get; set; }
127: public PhoneType PhoneTypeValue { get; set; }
128: }129: #endregion
130: 131: #region PhoneType 号码类别
132: /// <summary>
133: /// 号码类别
134: /// </summary>
135: public enum PhoneType
136: {137: /// <summary>
138: /// 不是一个手机号码
139: /// </summary>
140: NotPhoneNo,141: /// <summary>
142: /// 未知所属,其他
143: /// </summary>
144: Other,145: /// <summary>
146: /// 移动号码
147: /// </summary>
148: Mobile,149: /// <summary>
150: /// 联通号码
151: /// </summary>
152: Unicom,153: /// <summary>
154: /// 电信号码
155: /// </summary>
156: Telecom 157: }158: #endregion
159: }手机号段确定手机号码服务商类别,布布扣,bubuko.com
原文:http://www.cnblogs.com/maomao999/p/3718731.html