Проверить, что строка принадлежит определенному языку алфавита - PullRequest
1 голос
/ 20 августа 2009

Как я могу проверить атрибут строки модели Rails, что он принадлежит символам алфавита определенного языка?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 20 августа 2009

Есть библиотека с именем whatlanguage , которая распознает языки строки, например:

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

Работает с голландским, английским, фарси, французским, немецким, шведским, португальским, русским и испанским языками, поэтому он также распознает кириллицу.

1 голос
/ 20 августа 2009

Вы хотите проверить значение атрибута по регулярному выражению.

# Only match characters a-z
validates_format_of :attr, :with => /[a-z]/
0 голосов
/ 20 августа 2009

validates_format_of кажется правильным для вас. документация говорит:

Проверяет, имеет ли значение указанный атрибут правильной формы, сопоставляя его с предоставленным регулярным выражением.

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

Примечание: используйте \ A и \ Z для соответствия начала и конца строки, ^ и $ для начала / конца строки.

Необходимо указать регулярное выражение, иначе будет сгенерировано исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...