我有一个像
这样的字符串$str ='my age is 100';
现在我想将100与上面的字符串分开,我怎么能这样做,使用smarty
我正在研究Prestashop。 感谢
答案 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
正如所料。