c#.net使用正则表达式验证文本中是否包含手机号码或电话号码?

原创 2012年03月28日 14:08:34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;

namespace RegularPhoneApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string strPhone = "地址是在燕18892456564山13492456564路378号~~~洋纱小区对面 传真051253581349董事长:15133652276 1513365227615133652276总经理15133652276535753577308办公室  53577311销售010-53574182财务53577318生产53577307食品协会53577309中";
            VaildPhone(strPhone);
        }

        /// <summary>
        /// 查询有效的手机号码或是电话号码
        /// </summary>
        /// <param name="strPhone"></param>
        static void VaildPhone(string strPhone)
        {
            MatchCollection matchList;
            Regex reBlock=new Regex(@"(\d{4}-|\d{3}-)?[\d]+");
            Regex reMobile = new Regex(@"^1(3[4-9]|5[012789]|8[78])\d{8}$");
            Regex reUnicom = new Regex(@"^1(3[0-2]|5[56]|8[56])\d{8}$");
            Regex reTelecom = new Regex(@"^18[0-9]\d{8}$");
            Regex reCDMA = new Regex(@"^1[35]3\d{8}$");
            Regex rePhone = new Regex(@"^((\d{4}-)?\d{7}|(\d{3}-)?\d{8})$");
            matchList = reBlock.Matches(strPhone);
            ArrayList PhoneArray = new ArrayList();  
            for (int n = 0; n < matchList.Count; n++)
            {
                if (getValue(reMobile, matchList[n].Value) != "")
                {
                    PhoneArray.Add(getValue(reMobile, matchList[n].Value));
                    continue;
                }
                if (getValue(reUnicom, matchList[n].Value) != "")
                {
                    PhoneArray.Add(getValue(reUnicom, matchList[n].Value));
                    continue;
                }
                if (getValue(reTelecom, matchList[n].Value) != "")
                {
                    PhoneArray.Add(getValue(reTelecom, matchList[n].Value));
                    continue;
                }
                if (getValue(reCDMA, matchList[n].Value) != "")
                {
                    PhoneArray.Add(getValue(reCDMA, matchList[n].Value));
                    continue;
                }
                if (getValue(rePhone, matchList[n].Value) != "")
                {
                    PhoneArray.Add(getValue(rePhone, matchList[n].Value));
                    continue;
                }
            }
            foreach (var item in PhoneArray)
            {
                Console.WriteLine(item);
            }
            Console.Read();
        }
        /// <summary>
        /// 获得验证结果
        /// </summary>
        /// <param name="Reg">匹配的正则</param>
        /// <param name="Info">匹配的信息</param>
        /// <returns></returns>
        static string getValue(Regex Reg, string Info)
        {
            if (Reg.Match(Info).Success)
            {
                return Reg.Match(Info).Value;
            }
            else
            {
                return "";
            }
        }
        
    }
}


正则表达式匹配:包含且不包含

参考:http://www.jb51.net/article/52491.htm            http://www.cnblogs.com/yirlin/archive/2006/04/12...
  • thewindkee
  • thewindkee
  • 2016年10月11日 18:05
  • 9775

.NET验证手机号码、电话号码、身份证号、数字和邮编

验证电话号码的主要代码如下:   public bool IsTelephone(string str_telephone)         {             return Syste...
  • ly8261861
  • ly8261861
  • 2013年08月26日 15:16
  • 619

C#关于手机和固定电话的简单判断

最近做一个WinForm项目,需要对用户输入的电话号码进行判断。 下面是对电话号码的简单判断: 1.固定电话的判断规则:区号分为3位或4位:其中区号可以用小括号括起来或者不括起来,区号与本地号间可...
  • xiaozhonghuaa
  • xiaozhonghuaa
  • 2015年06月17日 19:29
  • 1526

ASP.NET 判断手机号码

string mobile = shoujihaoma.Text; //号码         Match m = Regex.Match(mobile, "(13|15)\\d{9}");    ...
  • jjzaihaozhe
  • jjzaihaozhe
  • 2012年06月08日 23:52
  • 4730

手机号码和电话号码正则表达式

电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3}...
  • sunling_sz
  • sunling_sz
  • 2014年02月17日 16:53
  • 2219

C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编

  • DonetRen
  • DonetRen
  • 2010年06月11日 18:12
  • 8707

手机号码和电话号码正则表达式

电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3}...
  • sunling_sz
  • sunling_sz
  • 2014年02月17日 16:53
  • 2219

验证手机号码格式的正则表达式编写思路详解

一、获取目前中国三大运营商的手机号码段 手机号码段 如上图我们可以根据不同运营商的号码段来编写正则,也可以进行统一校验的编写,我这边主要是编写统一校验的。 二、思路 1、为了得到号码...
  • LinBilin_
  • LinBilin_
  • 2016年12月08日 16:59
  • 1327

校验电话号码 手机号码正则表达式

电话号码 手机号码 等准确详细 正则表达式电话号码正则表达式 (支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{...
  • lzh7752
  • lzh7752
  • 2017年05月18日 13:29
  • 2549

验证手机号码和电话号码的正则表达式

电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3}...
  • zheng963
  • zheng963
  • 2015年06月12日 15:47
  • 402
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#.net使用正则表达式验证文本中是否包含手机号码或电话号码?
举报原因:
原因补充:

(最多只允许输入30个字)