7

我需要从我的内容中删除所有 html 元素。内容示例:

"<p><img alt=\"\" src=\"/ckeditor_assets/pictures/1/content_twitter-sink.jpg\" style=\"width: 570px; height: 399px;\" /></p>\r\n\r\n<h3 style=\"font-size: 1.38462em; margin: 1em 0px 0px; font-weight: 600; line-height: 1.2; font-family: freight-sans-pro, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizelegibility; color: rgb(46, 46, 46);\">Soraya Calavassy, communications manager at the Award in Australia,&nbsp;shares her organisation&#39;s experience&nbsp;piloting our new global visual identity.</h3>\r\n\r\n<p style=\"margin: 0.5em 0px 0px; text-rendering: optimizelegibility; font-size: 1.30769em; line-height: 1.3; color: rgb(78, 78, 78); font-family: freight-sans-pro, sans-serif;\">&quot;While Australia has a very strong brand locally, there are some great benefits for incorporating"

显示帖子时,我使用 raw ,它确实给了我需要的输出。但我需要生成一个摘录。为此,我需要去除所有 HTML 标签,甚至删除图像。但是当我使用sanitize时 ,它​​不会删除图像。如果我使用strip_tags,它会删除图像,但会添加&#39;撇号、&nbsp;空格等。那么,如何获得没有图像和&nbsp;内容的干净摘录?

4

4 回答 4

15

尝试strip_tags(text).html_safe

于 2013-02-04T04:29:12.907 回答
5

不适用于 Rails 4.1

只有将 strip_tags 与 gsub 函数结合使用的方法(下面的链接)

Ruby gsub字符串中的多个字符

所以在助手中,我会这样做:

def format_text(string)
    strip_tags(string).gsub("&nbsp;", "").gsub("&#39;", "'")
end
于 2014-10-15T11:38:34.260 回答
1

我遇到这样的代码问题

strip_tags("<p>a</p>\r\n") # => a&#13;

我用

sanitize("<p>a</p>", tags: [ ]) # => a\r\n
于 2015-03-06T10:15:51.300 回答
0

raw(strip_tags(text).html_safe)其实就是你想要的

于 2014-10-27T22:49:40.840 回答