验证该字符串是否属于特定语言字母表

时间:2009-08-20 07:25:07

标签: ruby-on-rails validation model

如何验证Rails模型字符串属性是否属于特定语言字母字符?

感谢。

3 个答案:

答案 0 :(得分:2)

有一个名为whatlanguage的库可以识别字符串的语言,例如:

require 'whatlanguage'
"Je suis un homme".language      # => :french

开箱即用荷兰语,英语,波斯语,法语,德语,瑞典语,葡萄牙语,俄语和西班牙语,因此它也能识别西里尔语。

答案 1 :(得分:1)

您需要针对正则表达式验证属性的值。

# Only match characters a-z
validates_format_of :attr, :with => /[a-z]/

答案 2 :(得分:0)

validates_format_of似乎对你来说是正确的。 the documentation说:

通过将指定属性的值与提供的正则表达式进行匹配,验证指定属性的值是否正确。

  class Person < ActiveRecord::Base
    validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create
  end

注意:使用\ A和\ Z匹配字符串的开头和结尾,^和$匹配一行的开头/结尾。

必须提供正则表达式,否则将引发异常。