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

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

$str ='my age is 100';

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

Я работаю над Prestashop.
Спасибо

0

Решение

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

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

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

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

1

Другие решения

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

{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

По вопросам рекламы [email protected]