PHP - RegEx匹配带或不带国家/地区代码的电话号码

时间:2012-04-23 11:51:36

标签: php android regex cordova mobile-country-code

我想在php中编写一个匹配方法,允许我匹配电话号码。

我的情况是,我想构建一个应用程序,它将从Android设备中提取电话联系号码,在后端,它将与当前应用程序用户的手机联系人匹配,如果有匹配,则添加这些用户作为朋友,类似于whatsapp在将手机联系人与在其设备中使用whatsapp app的用户进行匹配时的行为。

我现在遇到的问题是我如何编写一个RegEx,可以匹配带/不带国家代码或前导零的电话号码。

在应用程序中,我要求提供用户所在的国家/地区和电话号码,例如,我的一位朋友输入了以下值: 国家:约旦(+962) 电话号码:799633999 后端的这个将存储为+962799633999

如果我们假设我的朋友编号为0799633999,那么我可以使用的regEx与0799633999匹配+96279963999是什么?

3 个答案:

答案 0 :(得分:4)

你的正则表达式是#(\+\d+|0)(\d{9})$#

答案 1 :(得分:2)

你不要用正则表达式做这件事。 截断您的前导零和国家/地区代码并定期进行字符串比较。

如果联系人可以来自不同国家/地区,请添加您正在寻找朋友的国家/地区代码。

答案 2 :(得分:0)

请参阅this链接,您可以使用此正则表达式:

^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$

php代码:

$re = '/^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$/';
$str = '+2529371208646';

preg_match_all($re, $str, $matches);

print_r($matches);