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

Rails validation / Input check Foreign Character Set

我们有一位客户想要阻止/检测阿拉伯语和中文等非欧洲字符集。人们现在正在填写我们的表格,内容如下:

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

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

运行:

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

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字符。

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

所以经过 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?