Un coup de pousse pour une Regex please :)
Max
-
Max -
Max -
Hello tout le monde
J'ai une restriction sur le champ e-mail de mon formulaire. Je dois accepter toutes les syntaxe d'e-mail sauf celles qui finissent par : gmail.com par exemple.
Voici la syntace que j'ai réalisé mais qui ne marche pas :
"email_client":{
"regex":"/^[a-zA-Z0-9_\.\-]+\@^(gmail.com)|([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
"alertText":"* Adresse email invalide"}
Je vous remercie d'avance les gens et bonne journée :)
J'ai une restriction sur le champ e-mail de mon formulaire. Je dois accepter toutes les syntaxe d'e-mail sauf celles qui finissent par : gmail.com par exemple.
Voici la syntace que j'ai réalisé mais qui ne marche pas :
"email_client":{
"regex":"/^[a-zA-Z0-9_\.\-]+\@^(gmail.com)|([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
"alertText":"* Adresse email invalide"}
Je vous remercie d'avance les gens et bonne journée :)
1 réponse
-
^(gmail.com) ne peut pas marcher. Le ^ ne signifie une négation que entre des crochet. Remplace le par (?!gmail\.com).
De plus, avec ta regex tout ce qui est situé après le @ et qui n'est pas de la forme gmail.com sera considéré comme valide à cause de ton "OU" | . Je te conseillerais de faire deux tests, un pour la validité de l'email et un pour vérfiier si c'est une adresse gmail.-
-
J'ai fait autre chose :
Dans mon formulaire j'ai :
<label for="E-mail" >E-mail</label>
<input type="text" class="validate[required,custom[email_client],custom[email_client1]] text-input" id="email_prestataire" name = "email_prestataire" size="30" value="" />
et dans le fichier javascript j'ai mis 2 regex (2 vérifications en gros)
"email_client":{
"regex":"/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
"alertText":"* Adresse email invalide"},
"email_client1":{
"regex":"/^[a-zA-Z0-9_\.\-]+\@[^(gmail.com)]$/",
"alertText":"* Adresse email ne peut pas finir par gmail.com"},
Mais quand je test il m'affiche toujours "Adresse email ne peut pas finir par gmail.com" donc il ne prend plus en considération la premiere regex ??
Snif snif je suis perdu :( -
Non, non, non.
Je me suis mal exprimé désolé.
Le ^ ne signifie une négation que entre des crochet, mais [^(gmail.com)] signifie "un caractère quelconque qui n'est pas 'g','m','a','i','l','c','o','.','(',')' ".
Entre temps j'ai un peu reflechis à cela et la regex /^[a-zA-Z0-9_\.\-]+\@(?!gmail.com)/ (sans $ final) devrait suffire pour faire le 2ème tests.
Ou sans utiliser les regex tu peut aussi couper ta chaine en 2 au niveau du @ et vérifier si la deuxième partie est égale à "gmail.com" -
-
-