Pracuję z Ruby on Rails, czy istnieje sposób na usunięcie html
z łańcucha przy użyciu metody sanitize lub equal i zachowanie tylko tekstu wewnątrz atrybutu value na tagu wejściowym?
html
ruby
string
ruby-on-rails-3
Mattias
źródło
źródło
text.strip
działaOdpowiedzi:
Jest
strip_tags
metoda wActionView::Helpers::SanitizeHelper
:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags
Edycja: aby uzyskać tekst wewnątrz atrybutu wartości, możesz użyć czegoś takiego jak Nokogiri z wyrażeniem Xpath, aby wydobyć to z ciągu.
źródło
Jeśli chcemy to wykorzystać w modelu
czyli kod w metodzie „strip_tags”
źródło
require 'html/sanitizer'
i utworzysz własny odkażacz za pomocąHTML::FullSanitizer.new
.require 'html/sanitizer'
wywołuje błąd, więc muszę użyć:Rails::Html::FullSanitizer.new
( edgeapi.rubyonrails.org/classes/HTML/… )Tak, nazwij to:
sanitize(html_string, tags:[])
źródło
Białą listę tagów i atrybutów można określić poniżej
Powyższa instrukcja zezwala na tagi img , br i p oraz atrybuty src i style .
źródło
Użyłem biblioteki Loofah, ponieważ nadaje się zarówno do HTML, jak i XML (zarówno dokumenty, jak i fragmenty ciągów). Jest to silnik stojący za gemem dezynfekcji HTML. Po prostu wklejam przykładowy kod, aby pokazać, jak prosty jest w użyciu.
Klejnot Loofah
źródło
Co powiesz na to?
źródło
Rails::Html::FullSanitizer.new
jeśli nie chcesz określać białej listy.