2016-01-22 46 views
0

我使用的是由Smarty模板引擎驅動的編輯器。使用regex_replace和smarty來刪除產品名稱

我有一個是通過產生一個字符串,它看起來像這樣的API傳遞到$ PRODUCTNAME數據:

山便攜式170曬衣服,Versaline Broadline曬衣服,奧斯特勒爾Addaline 35曬衣服,山旋轉8曬衣服

我需要的是隻顯示第一個產品來自Hills品牌(上述品牌是Hills,Versaline,Austral)。

模板語法允許兩個參數來命令regex_replace後傳遞於:

首先是正則表達式被替換,第二個是文本的字符串來取代它。

下面的代碼:

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

我需要什麼是指定實際的正則表達式所以在「山」,並從下一個產品名稱保持其分離逗號之間的任何幫助,並一切都被刪除了。

電流輸出: 山便攜式170曬衣服,Versaline Broadline曬衣服,奧斯特勒爾Addaline 35曬衣服,山旋轉8曬衣服

希望的輸出: 山便攜式170曬衣服

這裏是上的文檔從Smarty regex_replace:http://www.smarty.net/docsv2/en/language.modifier.regex.replace.tpl

在此先感謝!

回答

0

正則表達式可能很複雜,但在這種情況下它相當簡單。

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

該表達式捕獲一個逗號,接着是其他任何東西,並將其替換爲無。

+0

確定這可以工作。假設我想從第二個逗號開始或從第三個逗號開始捕捉所有內容。那看起來怎麼樣?我非常感謝你的幫助。 –

+0

嗨,我實際上對RegEx沒什麼好感,我會試試看,但我不能答應任何事情。 –

0

您可以 1)第一分割字符串並投入陣列

無功海峽=「?怎麼樣,做今天」; var res = str.split(「,」);

res是一個數組,只是選擇所需的索引