【发布时间】:2014-08-04 17:19:39
【问题描述】:
在我的应用中,我必须监控用户输入的内容。所以我必须防止网站上的任何坏话。举个例子,假设我所有的坏话都在这个数组中。
bad_words = ['bad', 'evil', 'terrible', 'villain', 'enemy']
如果用户键入了这些,我希望它们被删除。这是我尝试过的一件事。
bad_words.each {|word| string.gsub(word, '')}
感谢您的帮助。
【问题讨论】:
-
把
gsub改成gsub!修改字符串对象。 -
你想在实践中做什么?您想在输入单词时突出显示该单词以警告作者吗?字符串保存时要删除单词吗?
-
August 评论的更多细节:gsub() 返回一个新字符串,您不对其进行任何操作,因此 ruby 丢弃了新字符串,而旧字符串保持不变。 Ruby 有很多方法的“bang”形式,bang(!) 是一个警告,即调用该方法的对象“receiver”将被更改。
-
我的目标是删除输入时的单词。除非是在创建用户名,否则我会使用 validates_exclusion of 警告他们。
-
我建议你把标题从“从数组中删除每个单词”改为“从字符串中删除某些单词”。