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

来源:互联网 发布:linux 不同网段转发 编辑:程序博客网 时间:2024/04/28 07:49

最近做一个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个规则是对电话号码的简单判断,并不能进行完全正确的判断,比如手机号码的判断就比较粗略。
目前所能想到的对上述规则的补充是:收集国内运营商的电话号码的号段,这样对电话号码是否合法进行更为正确的判断了。

0 0
原创粉丝点击