Ruby on rails 与&;处理创业板问题;书信电报;及;燃气轮机;

Ruby on rails 与&;处理创业板问题;书信电报;及;燃气轮机;,ruby-on-rails,ruby,sanitize,Ruby On Rails,Ruby,Sanitize,我正在使用sanitize gem从字符串中删除一些HTML标记 但是,在清理控制器中的字符串之前,字符串的设置如下: <p>This is &lt;b&gt;bold&lt;/b&gt; and this <span style="text-decoration: underline;">is</span> &lt;i&gt;italics&lt;/i&gt; ok? This <em&g

我正在使用sanitize gem从字符串中删除一些HTML标记

但是,在清理控制器中的字符串之前,字符串的设置如下:

<p>This is &lt;b&gt;bold&lt;/b&gt; and this <span style="text-decoration: underline;">is</span> &lt;i&gt;italics&lt;/i&gt; ok? This <em>is not </em>a problem.</p>
这是b本票/b这是现金/i行吗?这不是问题

这意味着
将取代


例如,当这些标记在控制器中被表示为
I
/I
时,如何使用清理gem来删除这些标记?

如果您希望为了清理而将转义的HTML标记(<和>)视为HTML,那么您必须首先取消对它们的清理:

require 'cgi' Sanitize.clean(CGI.unescapeHTML(your_string)) 需要“cgi” Sanitize.clean(CGI.unescapethtml(您的_字符串))
如果您希望转义的HTML标记(<和>)被视为HTML以进行清理,那么您必须首先取消对它们的扫描:

require 'cgi' Sanitize.clean(CGI.unescapeHTML(your_string)) 需要“cgi” Sanitize.clean(CGI.unescapethtml(您的_字符串))
我不确定我是否懂你的英语。你得到的结果是什么?我不确定我是否理解你的英语。你得到了什么意外的结果?谢谢你的帮助@Richard Hulse。然而,我并没有遇到另一个问题:转义HTML:pPARAGRAPH/p

未转义HTML(使用CGI.unescapetHTML(转义HTML)):段落

经过消毒的HTML(使用Sanitize.clean(使用Sanitize.clean(未转义的HTML,:elements=>['a',p',b',ul ol',li',strong')):段落

你知道为什么开场后会有一个

?我知道这可能不是有效的HTML,但我希望保持标签的顺序。感谢Sanitize Gem构建在Nokogiri之上,这意味着它将自动关闭所有未关闭的标签。第一个被视为未闭合的标签。最后一个额外的结束标记被视为多余的。如果您需要处理未验证的HTML,则可能需要编写自己的解析器(这不是一项轻率的任务)。:-)也许@Richard Hulse可以帮我解决另一个与消毒相关的问题?谢谢。如果这是正确的答案,请标记为正确。谢谢您的帮助@Richard Hulse。然而,我并没有遇到另一个问题:转义HTML:pPARAGRAPH/p

未转义HTML(使用CGI.unescapetHTML(转义HTML)):段落

经过消毒的HTML(使用Sanitize.clean(使用Sanitize.clean(未转义的HTML,:elements=>['a',p',b',ul ol',li',strong')):段落

你知道为什么开场后会有一个

?我知道这可能不是有效的HTML,但我希望保持标签的顺序。感谢Sanitize Gem构建在Nokogiri之上,这意味着它将自动关闭所有未关闭的标签。第一个被视为未闭合的标签。最后一个额外的结束标记被视为多余的。如果您需要处理未验证的HTML,则可能需要编写自己的解析器(这不是一项轻率的任务)。:-)也许@Richard Hulse可以帮我解决另一个与消毒相关的问题?谢谢。如果这是正确的答案,请你这样做。