我正在使用Ruby on Rails,有沒有一種方法可以從字符串中去掉html
,使用sanitize或equal方法,並且只在輸入標籤中保留value屬性值屬性?從字符串去除HTML Ruby on Rails
回答
有一個在ActionView::Helpers::SanitizeHelper
一個strip_tags
方法:
http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
編輯:對於所獲得的價值屬性中的文本,你可以使用類似引入nokogiri使用XPath表達式來獲取出來的字符串。
如果我們想在模型
ActionView::Base.full_sanitizer.sanitize(html_string)
這是代碼中的 「用strip_tags」 的方法來使用這個
這工作,但來自mdoel指是的ActionView尷尬。更乾淨你可以'需要'html/sanitizer''並用'HTML :: FullSanitizer.new'實例化你自己的消毒劑。 –
@nhaldimann,'require'html/sanitizer''產生錯誤,所以我必須使用:'Rails :: Html :: FullSanitizer.new'(http://edgeapi.rubyonrails.org/classes/HTML/FullSanitizer.html# method-i-sanitize) –
是的,稱之爲:sanitize(html_string, :tags=>[])
ActionView::Base.full_sanitizer.sanitize(html_string)
標籤白名單和屬性可以指定爲波紋管
ActionView::Base.full_sanitizer.sanitize(html_string, :tags => %w(img br p), :attributes => %w(src style))
以上聲明允許標籤:img,br和p 和 屬性:src和樣式。
這個怎麼樣?
white_list_sanitizer = Rails::Html::WhiteListSanitizer.new
WHITELIST = ['p','b','h1','h2','h3','h4','h5','h6','li','ul','ol','small','i','u']
[Your, Models, Here].each do |klass|
klass.all.each do |ob|
klass.attribute_names.each do |attrs|
if ob.send(attrs).is_a? String
ob.send("#{attrs}=", white_list_sanitizer.sanitize(ob.send(attrs), tags: WHITELIST, attributes: %w(id style)).gsub(/<p>\s*<\/p>\r\n/im, ''))
ob.save
end
end
end
end
如果你不想指定白名單,還有'Rails :: Html :: FullSanitizer.new'。 – Fredrik
我用絲瓜庫,因爲它是適用於HTML和XML(這兩個文件和字符串片段)。它是html消毒劑寶石的引擎。我只是簡單地粘貼代碼示例來展示它的使用方式。
unsafe_html = "ohai! <div>div is safe</div> <script>but script is not</script>"
doc = Loofah.fragment(unsafe_html).scrub!(:strip)
doc.to_s # => "ohai! <div>div is safe</div> "
doc.text # => "ohai! div is safe "
- 1. JSON字符串對象 - Ruby on Rails的
- 2. ruby on rails遞歸子字符串
- 3. Ruby on Rails的字符串雙引號
- 4. Ruby on Rails的字符串問題
- 5. 字符串替換在Ruby on Rails的
- 6. Ruby on Rails字符串到OpenStruct
- 7. Ruby on Rails中的字符串格式?
- 8. Ruby on rails字符串解析
- 9. Ruby on Rails:將HTML部分渲染爲一行字符串
- 10. Ruby on Rails:字符串沒有被轉換成html標籤
- 11. 從字符串去除XML
- 12. 如何從Ruby中的字符串去除括號?
- 13. 使用jQuery去除html字符串
- 14. 從Ruby on Rails範圍生成格式化字符串數組
- 15. Ruby on rails從系統命令字符串搜索
- 16. 如何在Ruby On Rails中「從外部資源中刪除查詢字符串」?
- 17. Ruby on Rails的查詢字符串特殊字符
- 18. 迭代過去的字符串和從字符串中去除字符串
- 19. 刪除從HTML字符串
- 20. 字符串on Rails的
- 21. 的Ruby/Rails - 從字符串中刪除括號內的文字
- 22. link_to ruby on rails with additional html
- 23. ruby on rails/routing-filter/form_for html
- 24. 的Ruby-on-Rails的,看看字符串包含數字,然後將其刪除
- 25. 字符串去除字符的字符
- 26. 去除(JSON)字符串
- 27. 在Ruby on Rails上指定字符串字段的長度
- 28. Ruby On rails驗證
- 29. Ruby on Rails濾除約束
- 30. Ruby on Rails 5.0表刪除
不消毒或等於但'text.strip'工作 – Keon