Je travaille avec Ruby on Rails, existe-t-il un moyen de supprimer html
une chaîne en utilisant la méthode sanitize ou equal et de ne conserver que le texte à l'intérieur de l'attribut value sur la balise d'entrée?
html
ruby
string
ruby-on-rails-3
Mattias
la source
la source
text.strip
fonctionneRéponses:
Il y a une
strip_tags
méthode dansActionView::Helpers::SanitizeHelper
:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Edit: pour obtenir le texte dans l'attribut value, vous pouvez utiliser quelque chose comme Nokogiri avec une expression Xpath pour le sortir de la chaîne.
la source
Si nous voulons l'utiliser dans le modèle
qui est le code de la méthode "strip_tags"
la source
require 'html/sanitizer'
et instancier votre propre désinfectant avecHTML::FullSanitizer.new
.require 'html/sanitizer'
erreur, je dois donc utiliser:Rails::Html::FullSanitizer.new
( edgeapi.rubyonrails.org/classes/HTML/… )Oui, appelez ceci:
sanitize(html_string, tags:[])
la source
La liste blanche des balises et des attributs peut être spécifiée comme ci-dessous
L'instruction ci-dessus autorise les balises img , br et p et les attributs src et style .
la source
J'ai utilisé la bibliothèque Loofah, car elle convient à la fois au HTML et au XML (documents et fragments de chaîne). C'est le moteur derrière le joyau du désinfectant html. Je colle simplement l'exemple de code pour montrer à quel point il est simple à utiliser.
Gemme de Loofah
la source
Que dis-tu de ça?
la source
Rails::Html::FullSanitizer.new
si vous ne souhaitez pas spécifier de liste blanche.