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

最近做一个WinForm项目,需要对用户输入的电话号码进行判断。
下面是对电话号码的简单判断:
1.固定电话的判断规则:区号分为3位或4位:其中区号可以用小括号括起来或者不括起来,区号与本地号间可以用连字号或空格间隔,也可以没有间隔 。

代码如下:

public static bool isPhone(string input)
{
   Regex regex = new Regex(@"((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)");
   return regex.IsMatch(input);
}

2.手机号码的判断规则:首位必须为1,并且11位全部是数据,格式为1??????????;

代码如下:

  public static bool isMobilePhone(string s)
        {
            if (s.Length < 11 || s[0] != '1')
            {
                //提示非手机号
                return false;
            }
            else
            {
                foreach (char tt in s)
                {
                    if (tt < '0' || tt > '9')
                    {
                        //提示非手机号
                        return false;    //只要有一个不是数字,就直接返回
                    }
                }
            }
            return true;
        }

总结:上面叙述的2个规则是对电话号码的简单判断,并不能进行完全正确的判断,比如手机号码的判断就比较粗略。
目前所能想到的对上述规则的补充是:收集国内运营商的电话号码的号段,这样对电话号码是否合法进行更为正确的判断了。

发布了45 篇原创文章 · 获赞 0 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览