You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Twig实现兼容带+号的通用电话号码格式化?

Twig电话号码通用格式化方案

可以通过**区分号码前缀(是否带+)**来实现两种格式的统一处理,直接用Twig内置函数就能完成,不需要额外扩展:

完整代码实现

{% set rawPhone = store.phones['phone_store'] %}
{% set formattedPhone = '' %}

{% if rawPhone starts with '+' %}
    {# 处理带+号的号码:分离+、前3位国家码、剩余数字按两位分割 #}
    {% set countryCode = rawPhone|slice(1, 3) %}
    {% set remainingDigits = rawPhone|slice(4) %}
    {% set splitRemaining = remainingDigits|split('', 2)|join(' ') %}
    {% set formattedPhone = '+ ' ~ countryCode ~ ' ' ~ splitRemaining %}
{% else %}
    {# 处理纯10位数字:保持原有的两位分割逻辑 #}
    {% set splitPhone = rawPhone|split('', 2)|join(' ') %}
    {% set formattedPhone = splitPhone %}
{% endif %}

{# 输出结果 #}
{{ formattedPhone }}

效果验证

  • 输入0600000000 → 输出:06 00 00 00 00(符合原有需求)
  • 输入+336000000 → 输出:+ 336 00 00 00(符合预期格式)

灵活调整说明

如果你的带+号号码的国家码长度不是3位(比如+1开头的北美号码),只需修改slice(1, 3)中的第二个参数即可,例如国家码是2位就改成slice(1, 2),剩余数字的起始位置对应改成slice(3)即可。

内容的提问来源于stack exchange,提问作者Kimako

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:10:31