如何在Liquid中正确移除字符串中的}字符并解决对应语法报错
报错原因
}是Liquid的语法保留字符,直接作为字符串参数传入过滤器时,会被Liquid解析器误认为是当前{{ }}变量块的结束标记,导致语法解析中断抛出错误。
解决方案
方法1:split + join 组合实现(无额外变量)
利用分割+拼接的逻辑间接实现移除}的效果,不需要额外定义变量,写法简单:
{{ 'random}string' | split: '}' | join: '' }}
上述代码执行后会输出randomstring,自动移除原字符串中的所有}字符。
方法2:捕获变量后调用remove过滤器(适合复用)
如果需要多次执行移除}的操作,可以先通过capture标签将}存入变量,再将变量传入remove过滤器使用:
{# 先定义存储闭合花括号的变量 #} {% capture close_brace %}}{% endcapture %} {# 调用remove过滤器 #} {{ 'random}string' | remove: close_brace }}
内容的提问来源于stack exchange,提问作者LucSpan
相关产品推荐
相关产品推荐

