Exp reg en javascript

Exp reg en javascript - HTML/CSS - Programmation

Marsh Posté le 10-12-2004 à 09:44:25    

Bonjour,
 
J'ai codé une fct Javascript pour vérifier qu'une adresse e-mail saisie par l'utilisateur était valide. Mais bizarrement, sous IE 5.0, ça marche pas alors que sous IE 6, j'ai aps de pb a priori...
 
le but de l'exp reg est de dire qu'une adresse du style :  
l-adresse.est@bonne-valide.com
les.adresses_email@sont_bonnes.fr
les3adresses@sontbonnes.net
...
Vous voyez le genre?
 
Moi, j'ai fait ça :

Code :
  1. function isValideEmailAddress(Email)
  2. {
  3.     RegExpression = new RegExp(/^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/);
  4.     return RegExpression.test(Email);
  5. }


Reply

Marsh Posté le 10-12-2004 à 09:44:25   

Reply

Marsh Posté le 10-12-2004 à 15:09:33    

Les quelques exemples d'utilisation d'expression régulière que j'ai trouvés sur le net donnent une syntaxe un peu différente :
 

Code :
  1. function isValideEmailAddress(Email)
  2. {
  3.   RegExpression = /^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/;
  4.   return RegExpression.test(Email);
  5. }

Reply

Marsh Posté le 10-12-2004 à 15:20:09    

la, je vois que le new RegExp a sauté. C'est pas cra-cra comme méthode ça? :/ Sinon, mon expresion régulière est bonne pour reconnaître les adresses e-mails proposées dans mon premier post?

Reply

Marsh Posté le 10-12-2004 à 16:12:04    

Ton expression est trop laxiste car les adresses suivantes sont bonnes :
 
.toto@.bozo.com
-toto@-bozo.com
333@333.33
 
Il y a plein d'exemples sur le net (apparemment la validation d'adresse mail est un classique dans les tutoriaux sur les expression régulières)
 
EDIT : Qiuand tu dis que ça ne marche pas sous IE 5.0, qu'est ce que ça fait ? Il y a des erreurs javascript ou des résultats incohérents ?


Message édité par Bidem le 10-12-2004 à 16:13:52
Reply

Marsh Posté le 10-12-2004 à 16:36:12    

bidem a écrit :

Ton expression est trop laxiste car les adresses suivantes sont bonnes :
 
.toto@.bozo.com
-toto@-bozo.com
333@333.33
 
Il y a plein d'exemples sur le net (apparemment la validation d'adresse mail est un classique dans les tutoriaux sur les expression régulières)
 
EDIT : Qiuand tu dis que ça ne marche pas sous IE 5.0, qu'est ce que ça fait ? Il y a des erreurs javascript ou des résultats incohérents ?


 
Quand j'ai codé cette fonction, j'avais déjà effectué une recherche sur le web (commentcamarche.net entre autre) mais les exemples trouvés étaient pour le coup trop limitatives (certaines de mes adresses ne passaient pas).
 
Quand je dis que sur IE 5 ça marche pas, c'est que ma fonction me retourne toujours FALSE même pour une adresse toto@titi.fr :(

Reply

Marsh Posté le 10-12-2004 à 17:46:56    

Après une recherche sur google de "RegExp IE 5.0" j'ai trouvé plein de références avec le même problème.
 
Il en ressort qu'avec IE 5 si tu veux faire "new RegExp(expression)", expression doit être du type String donc pour déclarer ton RegExp tu dois faire comme ça :

Code :
  1. RegExpression = new RegExp("/^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/" );


 
ou comme ça :

Code :
  1. RegExpression = /^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/;


 

Reply

Marsh Posté le 11-12-2004 à 09:34:33    

je vais pas pouvoir tester de suite, mais je le ferai lundi. Merci pour ta recherche en tout cas :jap:

Reply

Marsh Posté le 13-12-2004 à 18:11:14    

bidem a écrit :

Après une recherche sur google de "RegExp IE 5.0" j'ai trouvé plein de références avec le même problème.
 
Il en ressort qu'avec IE 5 si tu veux faire "new RegExp(expression)", expression doit être du type String donc pour déclarer ton RegExp tu dois faire comme ça :

Code :
  1. RegExpression = new RegExp("/^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/" );


 
ou comme ça :

Code :
  1. RegExpression = /^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/;




 
La première solution ne semble pas marcher mais la second oui :) Merci pour tout.

Reply

Marsh Posté le 14-12-2004 à 08:56:23    

oups j'avais oublié d'enlever les '/' de début et de fin...

Reply

Marsh Posté le 14-12-2004 à 15:25:07    

bidem a écrit :

oups j'avais oublié d'enlever les '/' de début et de fin...


 
ah? Bon, ben je referai un test...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed