PHP-匹配电话号码的正则表达式,带或不带国家代码

PHP-匹配电话号码的正则表达式,带或不带国家代码,php,android,regex,cordova,mobile-country-code,Php,Android,Regex,Cordova,Mobile Country Code,我想用php编写一个匹配方法,允许我匹配电话号码 我的情况是,我想构建一个应用程序,从Android设备中提取电话联系号码,在后端,它会将电话联系与当前应用程序用户进行匹配,如果存在匹配,则将这些用户添加为好友,类似于whatsapp在将手机联系人与设备中安装了whatsapp应用程序的用户进行匹配时所做的操作 我现在面临的问题是如何编写一个正则表达式来匹配带有/不带国家代码或前导零的电话号码 在应用程序中,我询问用户国家和电话号码,例如,我的一位朋友输入了以下值: 国家:约旦(+962) 电话

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

我的情况是,我想构建一个应用程序,从Android设备中提取电话联系号码,在后端,它会将电话联系与当前应用程序用户进行匹配,如果存在匹配,则将这些用户添加为好友,类似于whatsapp在将手机联系人与设备中安装了whatsapp应用程序的用户进行匹配时所做的操作

我现在面临的问题是如何编写一个正则表达式来匹配带有/不带国家代码或前导零的电话号码

在应用程序中,我询问用户国家和电话号码,例如,我的一位朋友输入了以下值: 国家:约旦(+962) 电话号码:799633999 后端中的此文件将存储为+96279963399


如果我们假设我的朋友号码是0799633999,那么我可以使用哪个正则表达式来匹配0799633999和+962799633999

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

您不能使用正则表达式执行此操作。 截断前导零和国家代码,并进行常规字符串比较

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

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

^([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);

我希望正则表达式会为我截断它,并通过排除前导的零和国家代码来进行匹配。只是我猜不出电话联系人中的号码是否带有前导零/国家代码,所以regex将确保从两个字符串中排除该数字并进行匹配,否?但国家代码并不总是3位数字,我试图找到一个考虑到任何国家代码的通用regex