C#-验证国内手机号码的最准确正则表达式

国内手机号码的规则(来自百度百科):

前3位为网络识别号;第4-7位为地区编码;第8-11位为用户号码。

移动:

1340-1348、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、147、178

联通:

130、131、132、155、156、145、185、186、176、175

电信:

133、153、180、181、189、177、173、149

虚拟运营商:

170[1700/1701/1702(电信)、1703/1705/1706(移动)、1704/1707/1708/1709(联通)、171(联通)

请问用C#如何写出最准确的正则表达式?

解决方法

  /// 
        /// 判断输入的字符串是否是一个合法的手机号
        /// 
        /// 
        /// 
        public static bool IsMobilePhone(string input)
          {
              Regex regex = new Regex("^1[34578]\\d{9}$");
             return regex.IsMatch(input);
        }

我们公司开始写的发现跟不上时代,就补加了第二位 5/7/8,感觉运营商变来变去,很难写太完整,都是出了问题再加

你可能感兴趣的:(C#-验证国内手机号码的最准确正则表达式)