hankstar

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

如果在一个TEXTBOX里输入一大串号码,中间用,或者其他符号隔开,那就要一些判断把这个字符串解析一下,去掉不符合的号码,去掉重复的号码,得到移动号码,得到联通号码。

最近的项目碰到类似的情况,所以总结了一些东西放在一个类里,如果下次项目再碰到的话,就可以偷懒了,直接调用

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

//using System.Text.RegularExpressions;
namespace Common
{
    public class Mobile
    {
        //过滤掉非联通移动的字符串
        public static string IsMobileNums(string mobile)
        {
            string regular=@"^((\(\d{3}\))|(\d{3}\-))?13[0-9]\d{8}|15[89]\d{8}";
            string mobile_new=string.Empty;

            string[] p = mobile.Split(',');
            foreach (string pp in p)
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(pp, regular))
                {
                    if (!mobile_new.Equals(string.Empty))
                    {
                        mobile_new += "," + pp;
                    }
                    else
                    {
                        mobile_new = pp;
                    }
                }
            }

            return mobile_new;
        }

        //过滤掉字符串中重复的手机号码
        public static string IsMobileRepeat(string mobile)
        {
            ArrayList al = new ArrayList();
            string[] p = mobile.Split(',');

            for (int i = 0; i < p.Length; i++)
            {
                if (al.Contains(p[i]) == false)
                {
                    al.Add(p[i]);
                }
            }
            string mobile_new = string.Empty;

            //mobile_new=string.Join(",", (string[])al.ToArray(typeof(string)));
            string[] pp = (string[])al.ToArray(typeof(string));
            for (int i = 0; i < pp.Length; i++)
            {
                if (!mobile_new.Equals(string.Empty))
                {
                    mobile_new += "," + pp[i].ToString();
                }
                else
                {
                    mobile_new = pp[i].ToString();
                }
            }
            return mobile_new;
        }


        //提取字符串中的移动手机号码
        public static string IsMobile_YiDong(string mobile)
        {
            string regular = @"^((\(\d{3}\))|(\d{3}\-))?13[456789]\d{8}|15[89]\d{8}";
            string mobile_new = string.Empty;

            string[] p = mobile.Split(',');
            foreach (string pp in p)
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(pp, regular))
                {
                    if (!mobile_new.Equals(string.Empty))
                    {
                        mobile_new += "," + pp;
                    }
                    else
                    {
                        mobile_new = pp;
                    }
                }
            }

            return mobile_new;
        }


        //提取字符串中的联通号码
        public static string IsMobile_LianTong(string mobile)
        {
            string regular = @"^1(3[0-2]|5[56]|8[56])\d{8}$";
            string mobile_new = string.Empty;

            string[] p = mobile.Split(',');
            foreach (string pp in p)
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(pp, regular))
                {
                    if (!mobile_new.Equals(string.Empty))
                    {
                        mobile_new += "," + pp;
                    }
                    else
                    {
                        mobile_new = pp;
                    }
                }
            }

            return mobile_new;
        }
    }
}

 

 

例子下载:主要是为了以后项目服务

手机号码类.rar

posted on 2009-05-15 06:11  熊的世界  阅读(188)  评论(0编辑  收藏  举报