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 :)
A voir également:
- Un coup de pousse pour une Regex please :)
- Couper une video - Guide
- Comment supprimer toutes les publications sur facebook d'un coup - Guide
- Couper une photo en 3 pour instagram - Guide
- Comment couper une musique - Guide
- Site coup d'un soir ✓ - Forum Consommation & Internet
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.
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.
En fait quand je mets seulement [^(gmail.com)] ça marche. Mais j'arrive pas à combiner les deux en fait : La syntaxe + le nom de domaine a exclure.
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 :(
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"