Rails 验证/输入检查外来字符集
Rails validation / Input check Foreign Character Set
我们有一位客户想要阻止/检测阿拉伯语和中文等非欧洲字符集。人们现在正在填写我们的表格,内容如下:
我不知道检测非欧洲字符集的最佳方法是什么。
所以我想知道该走哪条路:
- 某种jQuery 输入验证
- Rails 验证
- ...
运行:
- ruby 1.9.3p551
- Rails 3.2.19
氪
您可以在模型中进行 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?
我们有一位客户想要阻止/检测阿拉伯语和中文等非欧洲字符集。人们现在正在填写我们的表格,内容如下:
我不知道检测非欧洲字符集的最佳方法是什么。
所以我想知道该走哪条路:
- 某种jQuery 输入验证
- Rails 验证
- ...
运行:
- ruby 1.9.3p551
- Rails 3.2.19
氪
您可以在模型中进行 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?