我们有一位客户希望阻止/检测非欧洲字符集为阿拉伯语和中文。人们现在填写我们的形式与内容是这样的:导轨验证/输入检查外部字符集
我不知道什么是最好的方式来检测非欧洲字符集。
所以我想知道哪个方向走:
- 某种jQuery的输入验证
- Rails的验证
- 的...
运行:
- 红宝石1.9.3p551 条
- 的Rails 3.2.19
氪
我们有一位客户希望阻止/检测非欧洲字符集为阿拉伯语和中文。人们现在填写我们的形式与内容是这样的:导轨验证/输入检查外部字符集
我不知道什么是最好的方式来检测非欧洲字符集。
所以我想知道哪个方向走:
运行:
氪
SO 4小时的搜索后,我发现这个美女:
/\p{Arabic}/u
以及对多种编码,你可以使用:
/\p{Arabic}|\p{Han}/u
通过http://rubular.com/r/AKFhcpjIbL
测试10经由实测值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?
你可以做在模型中轨验证:
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 c haracters。
你能解释一下没有Part是什么吗? – Vinozio
你可以在这里看到完整的解释:http:// dostmuhammad。com/strip-non-ascii-characters-from-a-string-using-regex-regular-expressions/ – gabrielhilal
说得太快这也不允许法文字符 – Vinozio
一个JS方法是使用正则表达式来检查输入包含非英语字符(例如http://stackoverflow.com/questions/13840143/jquery-check-if-special-characters-exists-in-string,http://stackoverflow.com/questions/150033/regular-expression-to-match-non-英语字符)。另一种方法是检查这里显示的字符代码http://jsfiddle.net/dekkard/o842p2p2/ – dekkard