Rails验证/输入检查外部字符集

时间:2015-06-19 13:07:59

标签: ruby-on-rails ruby ruby-on-rails-3 validation

我们有一位客户希望阻止/检测非欧洲字符集为阿拉伯语和中文。人们现在用这样的内容填写我们的表格:

enter image description here

我不知道检测非欧洲字符集的最佳方法是什么。

所以我想知道要走哪条路:

  • 某种jQuery输入验证
  • Rails验证
  • ...

运行:

  • ruby​​ 1.9.3p551
  • Rails 3.2.19

3 个答案:

答案 0 :(得分:3)

经过4个小时的搜索,我发现了这个美丽:

/\p{Arabic}/u

对于多个编码,您可以使用:

/\p{Arabic}|\p{Han}/u

通过http://rubular.com/r/AKFhcpjIbL

进行测试

通过http://ruby-doc.org/core-2.1.1/Regexp.html

找到

完全验证:

validates_format_of :first_name, :last_name, without: /\p{Arabic}/u

在此上下文中有趣的阅读 - > How can I detect CJK characters in a string in Ruby?

答案 1 :(得分:1)

您可以在模型上创建验证,以确保传入的模型属性为#ascii_only?

答案 2 :(得分:0)

您可以在模型中进行导轨验证:

  

http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_format_of

class YourModel< ActiveRecord::Base
 validates_format_of :your_field, without: /[^\u0000-\u007F]+/
end

\u0000-\u007F相当于UTF-8或Unicode中的前255个字符,它们始终是ASCII字符。