Ruby on Rails:如何从文本输入中删除/删除/清理脚本,样式标记?

时间:2011-12-07 10:51:40

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 sanitize

<%= form_for @post.comments.new do |f| %>
    Name:<%= f.text_field :name %><br/>
    Email:<%= f.text_field  :email %><br/>
    Body:<%= f.text_area :content %><br/>
    <%= submit_tag "Comment" %>
<% end %>

我需要删除/删除/清理<script>..</script><style>..</style>代码。

其他选项是如果有任何脚本,样式标签,那么输入字段将被视为空。然后评论将不会被保存。

如何删除这些标签及其中的代码?我怎样才能删除html标签以及html标签内的内容?

3 个答案:

答案 0 :(得分:9)

我一直在使用消毒剂来达到这个目的。它一直很好用。

为您的应用添加常量:

YourApp::SANITIZE_FILTER = {
  :remove_contents => ['script']
}

然后你可以添加一个辅助方法:

 def sanitize_content(content)
   content = Sanitize.clean(content, YourApp::SANITIZE_FILTER)
 end

答案 1 :(得分:6)

据我所知,Rails 3中没有任何东西可以做到这一点。使用sanitize gem。

gem 'sanitize'添加到您的Gemfile中,然后运行bundle install。仅此一点应该这样做。

答案 2 :(得分:2)

使用SanitizeHelper

string = '<span id="span_is"><br><br><u><i>Hi</i></u></span>'
strip_tags(string) #This Will give you "Hi"