0

在视图中,字符串默认被转义。

mystring = "A&B: <b>some string here</b>" 
<%=mystring%>

mystring呈现为:

A&amp;B: &lt;b&gt;some string here&lt;/b&gt;

但是,我需要<b></b>渲染标签并转义 & 符号。

A&amp;B: <b>some string here</b>

html_safe取消转义 & 和<b>标签。有没有办法转义特殊字符,如&符号而不是 html 标签?

4

2 回答 2

2

您可以使用 Ruby 的 CGI::unescapeElement 方法对特定元素进行转义。在您的情况下,您需要使用以下内容:

mystring = CGI::escape_html("A&B: <b>some string here</b>")

# You can replace ["B"] with an array of tags to be escaped, i.e. ["B", "A", "IMG"]
mystring = CGI::unescapeElement(mystring, ["B"]) 

<%= mystring.html_safe %>

有关更多转义方法,请参见http://www.ruby-doc.org/stdlib-1.9.3/libdoc/cgi/rdoc/CGI.html

于 2012-04-14T04:41:31.820 回答
0

您可以在部分上拆分字符串,然后取消转义一些您想要的

于 2012-04-14T04:22:41.493 回答