2015-06-19 38 views
1

我们有一位客户希望阻止/检测非欧洲字符集为阿拉伯语和中文。人们现在填写我们的形式与内容是这样的:导轨验证/输入检查外部字符集

enter image description here

我不知道什么是最好的方式来检测非欧洲字符集。

所以我想知道哪个方向走:

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

运行:

  • 红宝石1.9.3p551
  • 的Rails 3.2.19

+0

一个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

回答

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 c haracters。

+0

你能解释一下没有Part是什么吗? – Vinozio

+0

你可以在这里看到完整的解释:http:// dostmuhammad。com/strip-non-ascii-characters-from-a-string-using-regex-regular-expressions/ – gabrielhilal

+0

说得太快这也不允许法文字符 – Vinozio

0

您可以创建确保传入模型attributs在模型验证是#ascii_only?

+0

我试过这个,我们也有法国字符,我们想让:) – Vinozio