在处理用户输入的电话号码时,经常需要一种简单有效的方法来解析、标准化和验证电话号码。本文介绍的电话号码解析工具正是为了满足这一需求而设计的。它最初是为了处理北美号码计划(NANP)的电话号码而构建的,但也应该能够处理国际电话号码。不过,需要注意的是,如果一个国家的代码使用了字母数字代码而不仅仅是数字代码,那么这个工具可能就无法处理了。尽管如此,这个工具在处理几乎所有测试过的格式方面都表现出了强大的能力。
在多种情况下,都需要一种简单易用的方式来解析、标准化和验证用户在网络表单上输入的电话号码,因此诞生了PhoneNumber结构。它最初只是一个简单的结构,只能解析有限的几种格式,但随着时间的推移,增加了更多的高级解析功能,甚至增加了对音位电话号码的支持。尽管在解析带有分机代码的电话号码时还存在一些限制,但大部分情况下它都能处理遇到的几乎所有格式。
代码文件是完全文档化的,并包含了很多示例,因此这里只提供一些基本示例来展示这个结构的能力。
通过指定整数值创建一个基本实例。
PhoneNumber phone = new PhoneNumber(1, 800, 222, 2222, 1234);
Console.WriteLine(phone);
输出:(800) 222-2222 ext 1234
通过解析数字字符串创建实例。
PhoneNumber phone = new PhoneNumber("1-800-222-2222 ex 1234");
Console.WriteLine(phone);
输出:(800) 222-2222 ext 1234
通过解析音位电话号码创建实例。
PhoneNumber phone = new PhoneNumber("800 MY-TEST ex 1234", true);
Console.WriteLine(phone);
输出:(800) MY-TEST ext 1234
创建一个实例并检查电话号码是否为NANP有效。
PhoneNumber phone = new PhoneNumber("(800) 222.2222");
Console.WriteLine("Is NANP valid? " + phone.IsNanpValid);
输出格式使用默认格式输出("P"格式字符串),但输出可以定制为几乎任何想要的格式。以下是接受的格式字符串的概述:
令牌描述:
所有其他字符都保持不变。请注意,令牌是区分大小写的。