首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net如何判断一个手机号字符串中包含3个连续的字符或3个相同的字符

2013-09-15 
asp.net怎么判断一个手机号字符串中包含3个连续的字符或3个相同的字符?asp.net怎么判断一个手机号字符串中

asp.net怎么判断一个手机号字符串中包含3个连续的字符或3个相同的字符?
asp.net怎么判断一个手机号字符串中包含3个连续的字符或3个相同的字符?
例如 137333192929 包含3个连续相同的字符:333
例如:137123739399 包含3个连续的子字符串:123
求解释! asp.net 字符串包含问题
[解决办法]
我自己想到了,建立一个list呗,值分别是<{000,111,222,...,999}>
List<string> A=new List<string>();//你的手机号的list
            foreach ()
            {
              A.Add();
            }


List<string> B = new List<string>() { "000", "111", "222", "333", "444", "555", "666", "777", "888", "999"};

foreach(string b in B)
            {
                if(A.Contains(b))
                {
                  //包含在里面
                }
                else
                {
                    //不包含
                }
            }

试试吧,我没测试
[解决办法]
正则写死
相同"(000)
[解决办法]
(111)
[解决办法]
(222)..."
连续"(012)
------解决方案--------------------


(123)
[解决办法]
(234)..."
Regex.IsMatch....
[解决办法]
包含三个相同:


            Regex r= new Regex(@"(\d)\1{2}");
            bool b = r.IsMatch("1393354545");//flase
            bool b = r.IsMatch("13933354545");//true

[解决办法]
测试
bool flag = CheckNum("137333192929");//true
                flag = CheckNum("137123739399");//true
                flag = CheckNum("18611770386");//false

 private bool CheckNum(string str)
            {
                if (str.Length < 3)
                    return false;
                else
                {
                    string computeStr=string.Empty;
                    string compareStr=str.Substring(0,3);

                    List<int> list = compareStr.Select(x=>int.Parse(x.ToString())).ToList();
                    if (list.Distinct().Count() == 1)//相同三个数字
                    {
                        return true;
                    }
                    else


                    {
                        computeStr = string.Join("",list.Select(x => --x));
                        computeStr = Regex.Replace(computeStr, @"(\d)(\d{2})", m => 
                        {
                            return m.Groups[2].Value + (int.Parse(m.Groups[1].Value) + 3);
                        });
                        if (computeStr.Equals(compareStr))//如果三个数字连续 
                        {
                            return true;
                        }
                        else
                        {
                            return CheckNum(str.Substring(1));
                        }
                    }
                }
                
            }


[解决办法]
   public static bool check(this string str, int index = 1) 


        {
            if (str.Length < 3
[解决办法]
index==str.Length-1)
                return false;
            if (str[index - 1] <= str[index] && str[index] <= str[index + 1]&&(2*str[index]==str[index-1]+str[index+1]))
            {
                if (str[index] - str[index - 1] == 0 
[解决办法]
 str[index] - str[index - 1]==1)
                return true;  
                   
            }
            return str.check(index + 1);        
        }


[解决办法]
Refer:
asp.net如何判断一个手机号字符串中包含3个连续的字符或3个相同的字符

http://www.cnblogs.com/insus/p/3320962.html

热点排行