在c#中验证电话号码(控制台)

时间:2013-03-26 16:55:21

标签: c# console

我可以在没有正则表达式的情况下限制控制台应用中的电话号码吗? 我有这个代码,但它不适用于国际号码,从00开始。

   static public bool CheckPhoneNumb (string phoneNumber)
    {
        long lphoneNumber;
        return ((phoneNumber.Length >= 9) && phoneNumber.Length <= 15) &&
                (long.TryParse (phoneNumber, out lphoneNumber))) ? true : false;
    }

Thnks。

4 个答案:

答案 0 :(得分:5)

如果您需要支持全球通话,那么使用正则表达式会很难。

我建议使用Google电话号码验证库。

  

解析/格式化/验证世界上所有国家/地区的电话号码。

https://code.google.com/p/libphonenumber/

在页面底部链接了一个C#端口。

答案 1 :(得分:1)

国际电话号码不以00开头.00部分是您在世界各地开始拨打实际国际号码(在00之后)的代码。该号码会从您拨打的地方发生变化。例如,在美国,它是011.在欧洲,它是00.日本有不同的代码,还有一些其他代码。

是的,您可以在没有正则表达式的情况下限制它,但您可能会觉得它更容易,我强烈建议您不要存储您的(或任何)国际访问代码,因为它根据您的不同而不同显示它。

答案 2 :(得分:1)

你寻求的答案比你想象的要复杂得多。

通常,数字本身会根据添加/删除前缀的原点和目标语言环境而变化。

什么样的电话号码? NANP(北美编号计划)还是其他地方?

http://www.nanpa.com/描述了涵盖美国,加拿大,墨西哥和加勒比海地区的NANP。对于世界各地的编号计划,一个好的起点是http://www.wtng.info/的世界电话编号指南

答案 3 :(得分:-1)

return ((phoneNumber.Length >= 9) && phoneNumber.Length <= 15) && phoneNumber.All(char.IsNumber);