这是我要清除的示例注释:
"<p><strong>hello</strong><em></em> <em>there</em> <a href=\"https://google.com\" title=\"Test\" target=\"_blank\">whats</a> up?</p><p><ul><li>this </li><li>is a</li><li>list</li></ul><p>and then there was more</p><p><ol><li>do this</li><li>do that</li></ol><p><img src=\"https://google.com\" alt=\"\"><br></p></p></p>"
我尝试使用以下命令进行消毒:
sanitize comment.text, tags: %w(p, strong, em, a, blockquote, img, ol, ul, li), attributes: %w(href, target, title)
输出为:
"hello there whats up?<li>this </li><li>is a</li><li>list</li>and then there was more<li>do this</li><li>do that</li>"
如您所见,li
元素没有嵌套在它们各自的有序列表和无序列表中,并且我尝试允许的所有其他标签也被删除了。
答案 0 :(得分:4)
使用特殊的数组创建器(例如%w()
时,您不想使用逗号:
%w(p, strong, em, a, blockquote, img, ol, ul, li)
# => ["p,", "strong,", "em,", "a,", "blockquote,", "img,", "ol,", "ul,", "li"]
删除这些内容,一切应开始为您工作。 (您会注意到li
起作用,因为作为最后一个元素,它不包含结尾的逗号)