私はRuby on Railsで作業しています。html
をサニタイズまたは等価メソッドを使用して文字列から取り除き、入力タグの値属性の中にテキストのみを保持する方法はありますか?文字列からのhtmlの文字列
答えて
はActionView::Helpers::SanitizeHelper
にstrip_tags
方法があります:
http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
編集:value属性内のテキストを取得するために、あなたは文字列の外にそれを得るためにXpath式で鋸山のようなものを使用することができます。
我々はモデル "strip_tags" 方法
を働くわけではありません。もっときれいに 'html/sanitizer'を必要とし、' HTML :: FullSanitizer.new'であなた自身のサニタイザをインスタンス化することができます。 –
@nhaldimann、 'require 'html/sanitizer''がエラーを発生させるので、' Rails :: Html :: FullSanitizer.new'(http://edgeapi.rubyonrails.org/classes/HTML/FullSanitizer.html# method-i-sanitize) –
はい、これを呼び出すのコードである
ActionView::Base.full_sanitizer.sanitize(html_string)
でこれを使用したい場合は、次のタグの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とstyleを使用できます。
これはいかがですか?
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. html文字列の文字列
- 2. 文字列PHPの文字列からHTMLを置換する
- 3. numpy文字列から文字列へ
- 4. Android、構文解析html、文字列の文字列の問題
- 5. 文字列から文字列の後に文字列を取得します
- 6. 文字列エンコーディングhtml
- 7. HTML文字列エンコーディング
- 8. のTrace.Write(文字列、文字列)とTrace.WriteLine(文字列、文字列)カテゴリ
- 9. 解析HTML文字列から
- 10. 文字をCの文字列から別の文字列にコピー
- 11. 文字列1から文字列2への文字の置換
- 12. 文字列と文字列をすべて文字列から削除する
- 13. 文字列から
- 14. 文字列から
- 15. 文字列から
- 16. 文字列から
- 17. 文字列からのgetBackgroundResourceの文字列
- 18. 文字列から文字列へのマップの述語
- 19. ASP.NET MVCのMocking Controller.Url.Action(文字列、文字列、オブジェクト、文字列)
- 20. spring mvc form bean文字列から文字列への変換
- 21. 文字列へのポインタから文字列をコピー
- 22. SQL内の文字列から不要な文字列
- 23. C++、文字列から文字配列への変換
- 24. Objective-Cの文字列から文字列を抽出する
- 25. 文字列の文字列の検索
- 26. 一文字の文字列
- 27. 文字列のスカラフィルタ部分文字列
- 28. パスワード文字列への文字列
- 29. 文字列と文字配列のアドバイス
- 30. Javaの文字列と文字配列
サニタイズまたは等しいが、 'text.strip'は、これは動作しますが、mdoelからActionViewに言及することは厄介である – Keon