5

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

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

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

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

如果我们假设我将我的朋友号码设为 0799633999,那么我可以使用什么正则表达式将 0799633999 与 +96279963999 匹配?

4

3 回答 3

4

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

于 2012-04-23T12:05:12.707 回答
2

你不要用正则表达式来做这件事。截断前导零和国家代码并进行常规字符串比较。

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

于 2012-04-23T13:07:49.993 回答
0

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

^([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);
于 2016-10-03T08:27:37.873 回答