国际电话号码验证和显示


International phone number validation and display

我有一个数据库中的电话号码,通过一个表单提交,将在我的网站上列出。有很多变化。有些来自国际,有些来自美国。有些人只放本地版本,有些人则包括国际格式。

如果可能的话,我正在努力使手机上的数字可以点击。

我正在使用php创建页面,因此我可以在做出显示决定之前处理数字。

因为我是从人工输入开始的,所以我将使用它在页面上显示,并使用带有href="tel:前缀的a标记。

<a href="tel:+12223334444">(222) 333-4444</a>

我的理解是所有的非数字字符都应该被去掉,可能的例外是"x",它可以表示扩展名,而前导的"+"表示国际电话。是否有任何理由不使用任何数字的前导"+"?还是要求提供国家代码?确保一个美国号码以"1"开头就可以拨打国际电话了吗?

我读到一些英国人在提交号码时有时会错误地使用'(0)'。是直接去掉,还是保留"0",还是用国家代码代替?

前导零在某些数字中有效吗?

我想要达到的目标的本质是:

1)确定数字(减去任何修饰,括号,破折号等)是否符合国际标准,或者可以通过添加前导"+"或其他必要的东西来符合国际标准。我似乎找不到一个有效的国际电话号码,但肯定存在。

2)如果可能的话,通过使用链接使号码可以在移动设备上拨号,而不会在桌面浏览器上造成混淆或错误。如果号码不可拨(验证失败),或者不能拨(使用一些基本修复),它将仅作为用户输入显示。

我向你保证,这是你想要的很多东西,你不会自己编码的。
Libphonenumber是一个很好的库:
https://code.google.com/p/libphonenumber/

更多信息:
https://stackoverflow.com/questions/tagged/libphonenumber