我想在php中编写一个匹配方法,允许我匹配电话号码。
我的情况是,我想构建一个应用程序,它将从Android设备中提取电话联系号码,在后端,它将与当前应用程序用户的手机联系人匹配,如果有匹配,则添加这些用户作为朋友,类似于whatsapp在将手机联系人与在其设备中使用whatsapp app的用户进行匹配时的行为。
我现在遇到的问题是我如何编写一个RegEx,可以匹配带/不带国家代码或前导零的电话号码。
在应用程序中,我要求提供用户所在的国家/地区和电话号码,例如,我的一位朋友输入了以下值: 国家:约旦(+962) 电话号码:799633999 后端的这个将存储为+962799633999
如果我们假设我的朋友编号为0799633999,那么我可以使用的regEx与0799633999匹配+96279963999是什么?
答案 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);