2009-08-20 3 views

Répondre

0

validates_format_of semble être la bonne chose pour vous. the documentation indique:

Valide si la valeur de l'attribut spécifié est de la forme correcte en le faisant correspondre à l'expression régulière fournie.

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

Note: L'utilisation \ A et \ Z pour correspondre au début et à la fin de la chaîne,^et $ correspondent au début/fin d'une ligne.

Une expression régulière doit être fournie sinon une exception sera déclenchée.

1

Vous devez valider la valeur de l'attribut par rapport à une expression régulière.

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

ok, et si ce n'est pas l'anglais? –

+0

Les expressions régulières peuvent correspondre à tous les caractères codés UTF8 en incluant l'option 'u'. ''你' .match (/ 你/u) # => # ' –

2

Il y a une bibliothèque appelée whatlanguage qui reconnaissent les langues de la chaîne, par exemple:

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

Works avec néerlandais, anglais, persan, français, allemand, suédois, portugais, russe et espagnol sur la boîte, donc il reconnaît aussi Cyrillic.

Questions connexes