国际电话号码验证和显示

时间:2014-08-12 10:20:36

标签: php regex html5 mobile

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

我想尽可能为手机点击数字。

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

由于我从人工输入开始,我将使用它来显示页面并使用带有href =" tel:前缀的标签。

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

我的理解是,所有非数字字符都应该被删除,除了&#39; x&#39;可以表示扩展名,以及领先的&#39; +&#39;国际电话。有没有理由不使用领先的&#39; +&#39;任何数字?或者是否需要国家代码?确保美国号码以&#39; 1&#39;开头。是否需要使其能够在国际上拨号?

我读过有些英国人有时会错误地使用&#39;(0)&#39;当他们提交号码时。如果这只是被剥离,或者应该是&#39; 0&#39; 0保留,或者应该用他们的国家代码替换。

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

我想要达到的目的是:

1)确定数字(减去任何装饰,括号,短划线等)是否为国际准备好,或者可以通过添加前导&#39; +&#39;或者其他可能需要的东西。我似乎无法找到有效国际号码的明确检查,但肯定存在。

2)如果可能,请使用链接拨打移动电话号码,而不会在桌面浏览器上造成混淆或错误。如果号码不能拨号(验证失败),或者无法拨打电话(使用一些基本修复),则只会由用户显示为输入。

1 个答案:

答案 0 :(得分:0)

我向你保证,你想要的很多,你不会自己编码。
libphonenumber是一个很好的图书馆,满足您的愿望:
https://code.google.com/p/libphonenumber/

有关它的任何进一步信息:
https://stackoverflow.com/questions/tagged/libphonenumber