code copy from http://blog.csdn.net/kwklover/archive/2005/01/12/250326.aspx
thanks to kwklover
怕忘了所以copy

        /**//// <summary>
        /// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
        /// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
        /// </summary>
        /// <param name="mobile">要判断的号码</param>
        /// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
        public static int GetMobileType(string mobile) 
        {
            string[] chinaUnicom  = new string[] {"130","131","132","133"} ;
            string[] chinaMobile1 = new string[] {"135","136","137","138","139"} ;
            string[] chinaMobile2 = new string[] {"1340","1341","1342","1343","1344","1345","1346","1347","1348"} ;

            bool bolChinaUnicom  = (Array.IndexOf(chinaUnicom,mobile.Substring(0,3)) >= 0) ;
            bool bolChinaMobile1 = (Array.IndexOf(chinaMobile1,mobile.Substring(0,3)) >=0) ;
            bool bolChinaMobile2 = (Array.IndexOf(chinaMobile2,mobile.Substring(0,4)) >=0) ;

            if (bolChinaUnicom)
                return 1  ;//联通

            if ( bolChinaMobile1 || bolChinaMobile2 )
                return 2 ; //移动
            
            return 3 ; //其他为电信
        }

注:有朋友建议,第二方法用正则表达式实现更好,确实不错,下面把第二方法的新实现贴上:

        /**//// <summary>
        /// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
        /// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
        /// </summary>
        /// <param name="mobile">要判断的号码</param>
        /// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
        public static int GetMobileType(string mobile)
        {
            if (IsChinaUnicomNumber(mobile))
                return 1 ;

            if (IsChinaMobileNumber(mobile))
                return 2 ;

            return 3 ;
        }

        //是否是联通的号码 测试通过
        private static bool IsChinaUnicomNumber(string mobile)
        {
            string sPattern = "^(130|131|132|133)[0-9]{8}";
            bool isChinaUnicom = Regex.IsMatch(mobile,sPattern) ;

            return isChinaUnicom ;
        }

        //是否是移动的号码 测试通过
        private static bool IsChinaMobileNumber(string mobile) 
        {
            string sPattern = "^(135|136|137|138|139|1340|1341|1342|1343|1344|1345|1346|1347|1348)[1-9]{7,8}" ;

            return Regex.IsMatch(mobile,sPattern) ;
        }

版权声明:CSDN是本Blog托管服务提供商。如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决。

转载于:https://www.cnblogs.com/henry_zjk/articles/100296.html

电话号码的判断--使用正则表达式的示例相关推荐

  1. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  2. 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

    文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...

  3. java正则表达式用法示例_Java正则表达式教程及示例

    java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...

  4. 使用php函数判断数字,PHP 几个常用数字判断函数的简单示例

    这篇文章主要为大家详细介绍了PHP 几个常用数字判断函数的简单示例,具有一定的参考价值,可以用来参考一下. 对PHP的几个常用数字判断函数代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...

  5. java通过单号判断快递公司的示例代码

    通过单号判断快递公司的示例代码有很多种,以下是快递100Java智能单号判断功能接入. 不过首先要拿到快递100的测试账号和密钥,获取方式只需要去官网注册后,登录后台进入用户信息模块就能看到了. ht ...

  6. 最新js验证手机号码、电话号码、身份证号码正则表达式代码

    js验证手机号码.电话号码.身份证号码正则表达式 手机号码正则表达式验证 固定电话号码正则表达式 身份证正则 手机号码正则表达式验证 function checkPhone(){ var phone ...

  7. java判断手机号_java使用正则表达式判断手机号的方法示例

    本文实例讲述了java使用正则表达式判断手机号的方法.分享给大家供大家参考,具体如下: 要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段, 故先要整清楚现在已经开放了 ...

  8. Linux正则表达式判断是否是数字示例

  9. Qt通过QRegExp类来实现输入的有效性判断与正则表达式的学习

    在做项目的过程中我们经常会遇到输入数字.字母这类的问题,有时候需要判断用户输入的信息是否按要求输入,这里就用到了正则表达式,Qt中QRegExp是正则表达式类.QRegExpValidator类是用来 ...

最新文章

  1. SQL Server 死锁的告警监控
  2. Deep Learning 论文笔记 (2): Neural network regularization via robust weight factorization
  3. menu什么意思中文意思_英文alone、lonely、lonesome 中文意思跟用法差别
  4. 体验微软反间谍软件及恶意软件清除工具
  5. 为什么QQ浏览器不是默认浏览器但是在打开网页的时候还是默认启动?
  6. python 取字符串的最后一位_python中获得一个字符串最后出现位置 | 学步园
  7. 中国计算机学会推荐国际学术会议和期刊目录(2015 年)
  8. 【STM32学习笔记——WIFI模块】
  9. 前端安全 XSS跨站脚本攻击-CSRF跨站请求伪造攻击
  10. 法人 法人代表和法定代表人的区别
  11. redis使用及Spring Session+Redis实现Session共享
  12. 从word中提取图片的三种方法
  13. 计算机三级网络技术最全知识点总结一
  14. 织梦网站在空间怎么转服务器,织梦网站换空间
  15. cisco配置主机计算机连接,Cisco交换机配置新手篇:正确连接和初级配置
  16. android团购客户端,领团网团购导航Android手机客户端获机锋网力推
  17. ?xml version=1.0 encoding=utf-8?appcommand time=1494385110doa
  18. 为什么要用色彩色差仪?色彩色差仪有哪些应用?
  19. EZ 2018 05 06 NOIP2018 慈溪中学集训队互测(五)
  20. 【服务器数据恢复】MDisk重建,vdisk丢失导致数据库不可用的数据恢复案例

热门文章

  1. 习题6-5 使用函数验证哥德巴赫猜想 (20 分)
  2. Win32ASM代码基本模块
  3. 从WebRtc学习RTCP协议
  4. PHP checkdate()函数与示例
  5. 小议SqlMapConfig.xml配置文件
  6. JAVA安装作用_jdk安装配置及其作用
  7. uva 10602——Editor Nottoobad
  8. 软件工程学习笔记《四》需求分析
  9. LRU缓存 数据结构设计(C++)
  10. 【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(1)