Expression reguliere

Bonjour,

Je travaille avec ruby on rails et dans mon formulaire je demande de
rentrer une adresse email.
Pour verifier que l’input est bien une adresse email, j’ai utilise un
validates_format_of dans le model.

Mon probleme c’est l’expression reguliere dans le parametre “:with =>”.
J’aimerais simplement verifier qu’il y a un “@” dedans pour commencer,
mais j’ai l’impression que le symbole @ signifie autre chose que la
lettre parce que /[email protected]+/ qui voudrait dire une ou plusieurs fois
n’importe quelle caractere suivit d’un “@” et de un ou plusieurs
caractere quelquonque, n’autorise pas “[email protected]” alors que
/[email protected]?.+/ autorise tout, meme adminadmin.com (sans “@”) (donc “@?” qui
dit 0 ou 1 fois @ doit passer en 0 fois. Et avec “@+” rien ne passe.
Vous avez une idee?
Merci
Raph

Voilà comment je teste si une chaîne ‘s’ commence par un ‘@’ :

not ( s =~ /^@.*/ ).nil?

Plus simplement on pourrait tester ( s =~ /^@.*/ ) puisque ‘nil’
équivaut Ã
“boolean false”

Sinon voir ici :

http://www.regular-expressions.info/email.html

Merci bien,
En fait je viens de m’apercevoir que a chaque fois que je sauvegardais
l’email je sauvegardais un deuxieme email en meme temps qui etait
toujours vide donc forcement ca marchait pas!
maintenant c’est bon.
merci

Bonjour,

tu peux aussi utiliser la regexp qui est un exemple sur la doc de
Rails :

 validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+

.)+[a-z]{2,})\Z/i, :on => :create

:slight_smile:

http://api.rubyonrails.org/classes/ActiveRecord/Validations/
ClassMethods.html#M000958

++

Le 6 déc. 07 à 10:59, Raph I. a écrit :

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs