用短划线显示多个电话号码


Display multiple phone numbers with dashes

我遇到了一个问题,在这种情况下,我的网站中有一个客户角色,我必须为他保存他们的电话号码和其他电话号码,但因为客户属于美国,因此我们需要在他们的电话号中添加短划线。例如:111-222-3333。我还在网站上集成了一个推荐系统,我可以使用朋友的电话号码推荐他们。我可以同时向多个电话号码发送推荐信。例如:111-222-3333、111-333-444、444-233-9330但条件是,我们所指的电话号码不应出现在客户的个人资料中(用户不应已使用该号码注册)。当客户的电话号码用破折号保存时,问题就会出现,但因为客户可以引用多个逗号分隔的电话号码,因此我无法提供破折号模式来填写电话号码。但现在,客户可以将推荐发送到没有虚线的电话号码(1112223333),如果有人已经注册了相同的电话号码,并且有虚线(111-222-3333)。在这种情况下,它不会与已经注册的电话号码相匹配。问题是在引用时用破折号显示多个电话号码。有人能给出解决方案吗。如何用短划线显示多个电话号码。如果你理解这个概念有任何困难,我很抱歉,但我会再解释一遍。如有任何帮助,我们将不胜感激。对不起,我编辑了这个问题。我没有解决的实际问题

似乎可以通过在比较之前剥离所有非数字字符的电话号码来解决这个问题。

您可以使用preg_replace从字符串中删除所有非数字字符,如下所示:

$str = preg_replace('/[^0-9]+/', '', $str);

以下是比较的一个简短示例:

<?php
$phoneNumber1 = "(418) 515-4184";
$phoneNumber2 = "4185154184";
if (preg_replace('/[^0-9]+/', '', $phoneNumber1) == preg_replace('/[^0-9]+/', '', $phoneNumber1))
{
    echo "Phone numbers are the same";
}
else
{
    // do stuff
}
?>

希望能有所帮助!