用正则表达式替换或剥离特殊字符(Smarty)

时间:2013-11-08 13:21:54

标签: regex url smarty special-characters strip-tags

在我网站的一部分中,我有一个如下所示的网址:

http://www.webizzi.com/mp3/search.html?q=+Hush+Hush+-+(Avril)++Lavigne的+

我想通过剥离除了+之外的网址上显示的每个特殊字符来保留一个更清晰的网址。但我也不希望在网址的开头或结尾有类似++或+的内容,网址应该看起来喜欢下面的那个

http://www.webizzi.com/mp3/search.html?q=Hush+Hush+Avril+Lavigne

目前我必须处理的是:

{$config.siteurl}search.html?q={$tags[row].tag|regex_replace:"/\s+/":"+"|stripslashes} 

2 个答案:

答案 0 :(得分:1)

假设您的输入是?q=

之后的所有内容
s/(^\++|\++$|\+\++|[\(\)]+)//g

在最后一对括号中,您可以放置​​任何其他要删除的字符。

这匹配一个或多个开头+,一个或多个结束+,两个或多个+的任意位置,或一个或多个括号内的特殊字符(到目前为止,只是括号)并替换为什么 - 空字符串 - zilch - nada。


我不知道关于Smarty的杰克,但我认为你应该尝试像

这样的东西
{$config.siteurl}search.html?q={$tags[row].tag|regex_replace:"/(^\++|\++$|\+\++|[\(\)]+)/":""|stripslashes}

我不太确定你是否需要在这里省略括号,所以如果它不起作用,就会丢失一些反斜杠。

答案 1 :(得分:0)

href =" {$ site_url} tests / tests / view / {$ test.test_id} / {strtolower($ test.test_name | replace:'':' - ' | regex_replace:' /(^ ++ | ++ $ | +++ | [()] +)/':'')}&#34 ;>试验