除了图像网址之外,如何清理html字符串?

时间:2016-03-03 12:53:02

标签: html ruby json sanitize

我试图清理一个html字符串,但我想将图片网址列入白名单。 我的代码:

ActionView::Base.full_sanitizer.sanitize(phrase.meaning, tags: %w(img), attributes: %w(src))

这不起作用,因为它会删除所有html标记和src的值。

我在json文件中的预期结果:

meaning: "Lorem ipsum.... http://localhost/image1.jpg .... Lorem ipsum"

1 个答案:

答案 0 :(得分:1)

也许直接使用同一个宝石中的PermitScrubber更容易:

html = 'Foo <img src="foo" title="bar"> <a href="foo">bar</a> blob'
scrubber = Rails::Html::PermitScrubber.new
scrubber.tags = ['img']
html_fragment = Loofah.fragment(html)
html_fragment.scrub!(scrubber)
html_fragment.to_s
#=> "Foo <img src=\"foo\" title=\"bar\"> bar blob"