Отдельное число от строки в smarty

0

У меня есть строка вроде

$str ='my age is 100';

теперь я хочу отделить 100 сверху строки, как я могу это сделать, используя smarty

Я работаю над Prestashop. благодаря

Теги:
smarty
prestashop

2 ответа

1
Лучший ответ

Если есть только число, вы можете просто удалить все нецифровые символы из строки с регулярным выражением с помощью выражения regex_replace:

{$str|regex_replace:"/[^0-9]/":""}

Это будет печатать 100 для первого примера и 21 для второго. Однако он не будет работать нормально для строк с разными номерами (т.е. "у меня есть 2 коровы и 1 кролик" вернется 21).

Все сказанное, я советую вам не извлекать номер из текстовой строки, если вам нужно, чтобы он использовался в вашем коде, поскольку он подвержен ошибкам. лучше объявить отдельную переменную, вместо этого

0

Предполагая, что числа в строке не соблюдаются или не сопровождаются комой, скобками, а просто пробелами, вы можете использовать:

{assign var="str" value="my age is 100 Include Couple Name (max 21 letters)"}

{assign var="ar" value= " "|explode:$str}

{foreach $ar as $a}
    {if $a|is_numeric}
        {append var="numbers" value=$a}
    {/if}
{/foreach}

NUMBERS:<br />
{foreach $numbers as $n}
    {$n}<br />
{/foreach}

Это даст результат:

NUMBERS:
100
21

как и ожидалось.

  • 0
    @ user3910051 Мое решение работает для вас? Я видел, что вы приняли это и отказались от этого позже

Ещё вопросы

Сообщество Overcoder
Наверх
Меню