Comment puis-je valider l'attribut de chaîne de modèle Rails qu'il appartient à des caractères alphabétiques spécifiques?Valider que la chaîne appartient à un alphabet de langue spécifique
Merci.
Comment puis-je valider l'attribut de chaîne de modèle Rails qu'il appartient à des caractères alphabétiques spécifiques?Valider que la chaîne appartient à un alphabet de langue spécifique
Merci.
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.
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]/
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.
ok, et si ce n'est pas l'anglais? –
Les expressions régulières peuvent correspondre à tous les caractères codés UTF8 en incluant l'option 'u'. ''你' .match (/ 你/u) # => #' –