【问题标题】:Smarty delete last character from string if it's '/'Smarty 从字符串中删除最后一个字符,如果它是 '/'
【发布时间】:2020-08-20 08:30:54
【问题描述】:

我正在尝试从 smarty 变量中提取最后一个字符。 我知道我可以使用substr 删除最后一个字符,或者也可以用replace 替换一个字符。 但我只想删除最后一个字符,前提是它以 / 结尾

比如我的字符串是/homepage/,我想变成/homepage

但如果我有/homepage,它应该是/homepage

编辑:

也应该适用于字符串/homepage/? -> /homepage?

【问题讨论】:

    标签: smarty


    【解决方案1】:

    您可以使用Smarty regex_replace 并匹配\ 如果它是\/$ 的最后一个字符并将其替换为空字符串。

    同样你可以用regex_replace替换/??结尾

    {$variable|regex_replace:"/\/$/":""|regex_replace:"/\/\?$/":"?"}

    【讨论】:

    • 如果我的字符串是 /homepage/ 并且仍然想删除最后一个 / 怎么办
    • $variable 是一个包含您的字符串的变量。
    • 是的,我知道,但如果我的字符串是 /homepage/? 我如何删除最后一个 /
    • 我确实发布了您应该使用的完整行。 {$variable|regex_replace:"/\/$/":""}
    • 字符串是/homepage/?还是/homepage/
    【解决方案2】:

    使用 Smarty 变量修饰符regex_replace

    {$url|regex_replace:"#/$#":""}
    

    【讨论】:

    • 它完全删除了我的字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2011-09-09
    • 2017-08-19
    相关资源
    最近更新 更多