IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

regexp pour email


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut regexp pour email
    Bonjour les gens
    je dois être une de ces innombrables victimes face à l'objet regexp, alors voici mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="JavaScript">
    function Test()
    {
    var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
    var mail = document.form.mail.value;  //document.form[0].mail.value marche pas
    if(!re.test('mail'))
        {
        alert ('email invalide');
        return false;
        }
    return true;
    }
    </script>
    mon appel de script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FORM name= form method="post" action='http://localhost/infotem/inscription_verif.php'> 
    mail:<BR><INPUT type=text name=mail maxlength=40 ><BR>
    <INPUT type=submit value=envoyer onClick="return Test()"><BR>
    </FORM>
    et pour finir les symptomes:
    je peux mettre ce que je veux dans l'email l'action de ma form est exécuter et aucun message d'alerte.

    voila,

    A votre bon coeur messieurs dames.

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    Je pense qu'il faut des " de part et d'autre de ton expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
    et également autour du message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("email invalide");
    necronick

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    désolé necronick rien n'y fait mais merci quand même

    code édité

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    hmmm.. le reste du code m'a l'air correct
    j'ajouterais bien un alert(mail); juste avant le test pour voir si on passe bien dans la fonction et si la variable mail contient bien ce que l'utilisateur a saisi.
    necronick

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    tu viens de confirmer un doute que j'avais mon script n'a pas l'air d'être parcouru
    nouveau code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="JavaScript">
    function Test()
    {
    var mail = document.form.mail.value;
    alert('mail');
    var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
    if(!re.test('mail'))
    {
    alert('true');
    return false;
    }
    }	
    </script>
    et aucune alerte en vue

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    correction le script est bien parcouru, j'avais effacé une accolade de trop mais c'est corrigé, cela dit il me donne toujours la même réponse.

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    Peut-etre que le probleme vient du coté de ton code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FORM name= form method="post" action='http://localhost/infotem/inscription_verif.php'>
    mail:<BR><INPUT type=text name=mail maxlength=40 ><BR>
    <INPUT type=submit value=envoyer onClick="return Test()"><BR>
    </FORM>

    1. il vaut mieux mettre les controles dans l'événement onsubmit de la balise form plutot que sur un onclick : 'est pls logique, et l'utilisateur pourra ainsi soumettre le formulaire aussi en appuyant sur entrée (ce qui est parfois plus pratique si le formulaire est important que de cliquer sur un bouton)

    2. Peut-etre qu'appeler une balise <form> "form" peut poser des problemes, mais je n'en suis pas sur.

    3. il vaut mieux mettre les attributs entre ", et les noms des balises en minuscules c'est plus propre
    necronick

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    a y est ça marche
    correction finale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script language="JavaScript">
    function Test()
    {
    var mail = document.form.mail.value;
    var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
    if(!re.test(mail))
    {
    alert('false');
    return false;
    }
    else
    {
    alert('true');
    return false;
    }
    }	
    </script>
    je fesais re.test('mail') au lieu de re.test(mail)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RegExp pour vérification d'email - sous Safari et Chrome
    Par Giill dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/05/2009, 11h57
  2. RegExp pour une adresse email
    Par sliderman dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/02/2008, 22h30
  3. Regexp pour supprimer plein de blancs
    Par Petitcodeur dans le forum Langage
    Réponses: 6
    Dernier message: 09/08/2006, 15h01
  4. [RegExp] validité email
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 01/12/2005, 12h09
  5. RegExp pour vérifier un chiffre à 2 décimales
    Par RobertDeNiroZ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/05/2005, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo