我不知道任何现有的,但是在自定义验证中用一组正则表达式捕捉其中的大部分应该太难了。不恰当的大写字母是很难理解的,因为它们的名字和首字母缩写都是正确的。
before_validation :filter_lameness
def filter_lameness
# reduce exclamation marks
content.gsub!(/![!1]+/, "!")
# Proper capitalization.
content.gsub!(/(\.\s*[a-z])/, $1.upcase) # capital starts sentence
content.gsub!(/([A-Z]{5,})/, $1.capitalize) # lowercases all but first letter in a string of capitals. Minimum length 5.
# etc...
return true # needed in case the last gsub matches nothing, otherwise validation returns nil and will fail
end
就我个人而言,我很想追踪用户违反《时尚指南》的行为,并在足够多的违规行为后将其与记过徽章联系起来,以供公众羞辱。