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

本文关键字:验证 电话号码 控制台 | 更新日期: 2023-09-27 18:05:53

我可以在没有正则表达式的情况下限制控制台应用程序中的电话号码吗?我有这个代码,但是不能用以00开头的国际号码。

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

感谢。

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

如果您需要支持全球调用,那么使用正则表达式将很难做到这一点。

我建议使用Google Phone Number Validation Library。

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

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

在页面底部有一个c#端口链接。

国际电话号码不以00开头。00部分是您在您所在地区开始拨打实际国际号码(在00之后)时使用的代码。这个号码会随着你拨号的地点而改变。例如,在美国,它是011。在欧洲,是00。日本有不同的代码,还有一些其他的代码。

是的,您可以在没有正则表达式的情况下限制它,但是您可能会发现这样做更容易,并且我强烈建议您不要使用它来存储您的(或任何)国际访问代码,因为它根据您显示给谁而变化。

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

通常数字本身会随着前缀的添加/删除而变化,这取决于源语言环境和目的地语言环境。

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

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

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