我在建立一个包含href的数据描述时遇到了麻烦。存储的值包含双引号,这显然会导致问题,所以我想用单引号替换双引号。这似乎是非常简单的,但我的替换似乎不工作。
<img src="#" data-description="{{ photo.description|replace({'%"%': "'"}) }}"/>
说明如下:
<p>Cool description blah. <a href="http://www.google.com">Google</a></p>
在页面上的结果是:
<img src="# data-description="<p>Cool description blah. <a href='"http://www.google.com'">Google</a></p>" style="width: 345px; height: 229px;">
双引号不被替换,现在被转义。
如果我尝试raw:
<img src="#" data-description="{{ photo.description|replace({'%"%': "'"}) }}"/>
一切都中断了,最后看起来像这样:
<img src="#" data-description="<p>Cool description blah. <a href='" http:="" www.google.com'"="" style="width: 345px; height: 229px;">
Google
<p></p>
"/>
我的主要问题是,为什么我不能替换双引号?
这个问题似乎与您指定的替换模式有关:您不需要使用%
字符(可能doc示例有点困惑,因为示例使用它作为paceholder)。
所以试着这样简单:
<img src="#" data-description="{{ desc|replace({'"':''''})|raw }}"/>
下面是一个工作示例。
希望对您有所帮助
我在使用括号编辑器中接受的版本时遇到了问题。该解决方案完全没有语法高亮显示。然而,下面的代码片段对我来说工作得很好:
{{ desc|replace({'"':"'"})|raw }}