使用带有smarty的regex_replace删除产品名称

时间:2016-01-22 00:38:28

标签: php regex string replace smarty

我正在使用由Smarty模板引擎驱动的编辑器。

我有通过API传递到$ productName的数据,该API产生如下所示的字符串:

Hills Portable 170晾衣绳,Versaline Broadline晾衣绳,Austral Addaline 35晾衣绳,Hills Rotary 8晒衣绳

我需要的是仅显示来自Hills Brand的这个字符串的第一个产品(上面的品牌是Hills,Versaline,Austral)。

模板语法允许在命令regex_replace:

之后传入两个参数

第一个是要替换的正则表达式,第二个是用替换它的文本字符串。

以下是代码:

{$productName|regex_replace:" ":" "}

我需要帮助的是指定实际正则表达式,以便“Hills”和将它与下一个产品名称分隔开的逗号之间的任何内容都保留,其他所有内容都将被删除。

当前输出: Hills便携式170晾衣绳,Versaline Broadline晾衣绳,Austral Addaline 35晾衣绳,Hills Rotary 8晒衣绳

期望的输出: Hills Portable 170晾衣绳

以下是Smarty的regex_replace文档:http://www.smarty.net/docsv2/en/language.modifier.regex.replace.tpl

提前致谢!

2 个答案:

答案 0 :(得分:0)

正则表达式可能很复杂,但在这种情况下它很简单。

{$productName|regex_replace:"/,.+/":""}

此表达式捕获逗号,后跟其他任何内容,并将其替换为空。

答案 1 :(得分:0)

你可以 1)首先拆分字符串并放入数组

var str ="今天怎么样?&#34 ;; var res = str.split(",");

res是一个数组,只需选择所需的索引