如何格式化电话号码



我想用trick格式化一个电话号码。基本上,我想用这个功能将每2位数字分开,当我有一个像0600000000:这样的10位电话号码时,它可以完美地工作

{% set splitPhone = store.phones['phone_store']|split('', 2) %}
{% set phone = splitPhone|join(' ') %}

我得到了我想要的:

06 00 00 00 00

问题是我的数据也可以以+336000000的形式到达

所以在这种情况下,我得到

+3 36 00 00 00

我想要这样的东西:+336 00 00 00

在这种情况下,我想找到一种通用技术来确保如果我的数字是10位,它会像我目前所做的那样,但在存在"0"的情况下+"在前面,它将其与数字分隔开。

你知道我该怎么做吗?

您只需使用自定义过滤器来扩展trick,即可解决此问题,例如

$twig->addFilter(new TwigTwigFilter('format_phone', function($phone) {
$prefix = null;
if (strpos($phone, '+') === 0) $prefix = substr($phone, 0, 4).' ';

$temp = str_split(substr($phone, $prefix ? 4 : 0), 2);
return $prefix.implode(' ', $temp);
});

演示

{{ '0600000000'|format_phone }}
{{ '+336000000'|format_phone }}

最新更新