在smarty中将字符串与字符串分开

时间:2014-11-05 10:00:38

标签: php smarty prestashop

我有一个像

这样的字符串
$str ='my age is 100';

现在我想将100与上面的字符串分开,我怎么能这样做,使用smarty

我正在研究Prestashop。 感谢

2 个答案:

答案 0 :(得分:1)

如果只有一个数字,您可以使用带有regex_replace的正则表达式从字符串中删除所有非数字字符:

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

第一个例子打印100,第二个打印21。然而,对于具有不同数字的字符串,它将无法正常工作(即“我有2头奶牛和1只兔子”将返回21)。

如果您需要在代码中使用它,我建议您不要从文本字符串中提取数字,因为它很容易出错。更好地声明一个单独的变量,而不是

答案 1 :(得分: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

正如所料。