我们有一位客户希望阻止/检测非欧洲字符集为阿拉伯语和中文。人们现在用这样的内容填写我们的表格:
我不知道检测非欧洲字符集的最佳方法是什么。
所以我想知道要走哪条路:
运行:
氪
答案 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字符。