Вставить символ после третьего символа в строке - PullRequest
0 голосов
/ 05 апреля 2020

В Liquid я пытаюсь вставить указанный c символ '-' после третьего символа в строке. Я смог использовать append и prepend, чтобы добавить '-' в начало или конец строки, однако я не уверен, как вставить это в определенную c точку.

Пример: {% capture userphone %} {{current_user.phone | append: '-' }} {% endcapture %}

{{userphone}} == '1231231234-'

Есть ли метод, который можно использовать с жидкостью для вставки дефисов после символов 3 и 6?

{{userphone}} == '123-123-1234'

1 Ответ

0 голосов
/ 05 апреля 2020

Вот решение с фильтром slice:

{%- assign phone = '1231231234' -%}
{%- assign part1 = phone | slice: 0, 3 -%}
{%- assign part2 = phone | slice: 3, 3 -%}
{%- assign part3 = phone | slice: 6, 4 -%} 
{{ part1 | append: '-' | append: part2 | append: '-' | append: part3 }}

Приведенное выше решение подразумевает, что вы уверены, что номер телефона содержит 10 символов. Его можно немного откорректировать, изменив значение длины на реальный размер строки или просто на какое-нибудь значение, например 999, чтобы убедиться, что последняя часть содержит все символы.


Вы также можете for l oop:

{%- assign phone = '1231231234' -%}
{%- assign phoneChars = phone | split: '' -%}
{%- assign phoneWithHyphens = '' -%}
{%- for char in phoneChars -%}
  {%- assign phoneWithHyphens = phoneWithHyphens | append: char -%}
  {%- if forloop.index == 3 or forloop.index == 6 -%}
    {%- assign phoneWithHyphens = phoneWithHyphens | append: '-' -%}
  {%- endif -%}
{%- endfor -%}
{{- phoneWithHyphens -}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...