Ich arbeite mit Ruby on Rails. Gibt es eine Möglichkeit, html
einen String mit der Methode sanitize oder equals zu entfernen und nur Text im Wertattribut des Eingabe-Tags zu belassen?
html
ruby
string
ruby-on-rails-3
Mattias
quelle
quelle
text.strip
funktioniertAntworten:
Es gibt eine
strip_tags
Methode inActionView::Helpers::SanitizeHelper
:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Bearbeiten: Um den Text in das value-Attribut aufzunehmen, können Sie etwas wie Nokogiri mit einem Xpath-Ausdruck verwenden, um dies aus der Zeichenfolge herauszuholen.
quelle
Wenn wir dies im Modell verwenden wollen
Dies ist der Code in der Methode "strip_tags"
quelle
require 'html/sanitizer'
und instanziieren Sie Ihr eigenes Desinfektionsmittel mitHTML::FullSanitizer.new
.require 'html/sanitizer'
löst Fehler aus, so dass ich verwenden muss:Rails::Html::FullSanitizer.new
( edgeapi.rubyonrails.org/classes/HTML/… )Ja, nennen Sie das:
sanitize(html_string, tags:[])
quelle
Eine weiße Liste von Tags und Attributen kann wie folgt angegeben werden
Die obige Anweisung erlaubt die Tags img , br und p sowie die Attribute src und style .
quelle
Ich habe die Loofah-Bibliothek verwendet, da sie sowohl für HTML als auch für XML (sowohl Dokumente als auch Zeichenfolgenfragmente) geeignet ist. Es ist der Motor hinter dem HTML-Desinfektionsjuwel. Ich füge einfach das Codebeispiel ein, um zu zeigen, wie einfach es zu verwenden ist.
Luffa Edelstein
quelle
Wie wäre es damit?
quelle
Rails::Html::FullSanitizer.new
wenn Sie keine Whitelist angeben möchten.