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 :

Contrôle du champ email


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut Contrôle du champ email
    Salut tout le monde,
    j'ai un formulaire d'inscription avec 4 champs Pseudo, Email, pwd1, pwd2 et tous les champs fonctionnent bien sauf le contrôle du champ Email.
    Je veux que les utilisateurs respectent ce format xxx@xxx.xxx en saisissant leur adresse mail et si un paramètre n'est pas respecté soit par l'absence de @ ou l'omission du nom de domaine (.fr, .com, ...) que le Tooltips correspondant s'active jusqu'à ce que le format soit respecté et c'est ce qui ne se fait pas et si quelqu'un pouvait corriger mon formulaire. Merci d'avance

    Voici mon code css
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
        <style>
          body {
           padding-top: 50px;
          }
     
          .form_col {
            display: inline-block;
            margin-right: 15px;
            padding: 3px 0px;
            width: 200px;
            min-height: 1px;
            text-align: right;
          }
     
          input {
            padding: 2px;
            border: 1px solid #CCC;
            -moz-border-radius: 2px;
            -webkit-border-radius: 2px;
            border-radius: 2px;
          }
     
          input:focus {
            border-color: rgba(82, 168, 236, 0.75);
            -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
            box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
          }
     
          .correct {
            border-color: rgba(68, 191, 68, 0.75);
          }
     
          .correct:focus {
            border-color: rgba(68, 191, 68, 0.75);
            -moz-box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
            box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
          }
     
          .incorrect {
            border-color: rgba(191, 68, 68, 0.75);
          }
     
          .incorrect:focus {
            border-color: rgba(191, 68, 68, 0.75);
            -moz-box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
            box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
          }
     
          .tooltip {
            display: inline-block;
            margin-left: 20px;
            padding: 2px 4px;
            border: 1px solid #555;
            background-color: #CCC;
            -moz-border-radius: 4px;
            -webkit-border-radius: 4px;
            border-radius: 4px;
          }
        </style>
    Et voici le code du formulaire
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
        <form id="myForm" action="verifformulaire.php" method="post">
     
          <label class="form_col" for="Pseudo">Pseudo :</label>
          <input name="Pseudo" id="Pseudo" type="text" />
          <span class="tooltip">Le pseudo ne peut pas faire moins de 4 caractères</span>
          <br /><br />
     
          <label class="form_col" for="Email">e-mail :</label>
          <input name="Email" id="Email" type="text" />
     
          <span class="tooltip">Votre é-mail doit être de la forme xxx@xxx.xxx</span>
          <br /><br />
     
          <label class="form_col" for="pwd1">Mot de passe :</label>
          <input name="pwd1" id="pwd1" type="password" />
     
          <span class="tooltip">Le mot de passe ne doit pas faire moins de 6 caractères</span>
     
          <br /><br />
     
          <label class="form_col" for="pwd2">Mot de passe (confirmation) :</label>
          <input name="pwd2" id="pwd2" type="password" />
          <span class="tooltip">Le mot de passe de confirmation doit être identique à celui d'origine</span>
          <br /><br />
     
          <span class="form_col"></span>
          <label><input name="news" type="checkbox" /> Je désire recevoir la newsletter chaque mois.</label>
          <br /><br />
     
          <span class="form_col"></span>
          <input type="submit" value="M'inscrire" /> <input type="reset" value="Réinitialiser le formulaire" />
     
        </form>
    Et voici le code JavaScript correspondant:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
     <script type="text/javascript">
     
          // Fonction de désactivation de l'affichage des "tooltips"
     
          function deactivateTooltips() {
     
            var spans = document.getElementsByTagName('span'),
                spansLength = spans.length;
     
            for (var i = 0 ; i < spansLength ; i++) {
              if (spans[i].className == 'tooltip') {
                spans[i].style.display = 'none';
              }
            }
     
          }
     
     
          // La fonction ci-dessous permet de récupérer la "tooltip" qui correspond à notre input
     
          function getTooltip(el) {
     
            while (el = el.nextSibling) {
              if (el.className == 'tooltip') {
                return el;
              }
            }
     
            return false;
     
          }
     
     
          // Fonctions de vérification du formulaire, elles renvoient "true" si tout est ok
     
          var check = {}; // On met toutes nos fonctions dans un objet littéral
     
          check['Pseudo'] = function(id) {
     
            var name = document.getElementById(id),
                tooltipStyle = getTooltip(name).style;
     
            if (name.value.length >= 3) {
              name.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              name.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
          check['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var regex=document.getElementById('Email'),
    		   		  tooltipStyle = getTooltip(regex).style;
    				 //regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
    		  if(regex.value.length =/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)
       {
         regex.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
       }
       else
       {
          regex.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
       }
    };
     
          check['pwd1'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                tooltipStyle = getTooltip(pwd1).style;
     
            if (pwd1.value.length >= 6) {
              pwd1.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd1.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
          check['pwd2'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                pwd2 = document.getElementById('pwd2'),
                tooltipStyle = getTooltip(pwd2).style;
     
            if (pwd1.value == pwd2.value && pwd2.value != '') {
              pwd2.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd2.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
     
          // Mise en place des événements
     
          (function() { // Utilisation d'une fonction anonyme pour éviter les variables globales.
     
            var myForm = document.getElementById('myForm'),
                  inputs = document.getElementsByTagName('input'),
                  inputsLength = inputs.length;
     
            for (var i = 0 ; i < inputsLength ; i++) {
              if (inputs[i].type == 'text' || inputs[i].type == 'password') {
     
                inputs[i].onkeyup = function() {
                  check[this.id](this.id); // "this" représente l'input actuellement modifié
                };
     
              }
            }
     
            myForm.onsubmit = function() {
     
              var result = true;
     
              for (var i in check) {
                result = check[i](i) && result;
              }
     
              if (result) {
                alert('Le formulaire est bien rempli.');
              }
     
              return false;
     
            };
     
            myForm.onreset = function() {
     
              for (var i = 0 ; i < inputsLength ; i++) {
                if(inputs[i].type == 'text' || inputs[i].type == 'password') {
                inputs[i].className = '';
                }
              }
     
              deactivateTooltips();
     
            };
     
          })();
     
     
          // Maintenant que tout est initialisé, on peut désactiver les "tooltips"
     
          deactivateTooltips();
     
        </script>

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    un verification avec regex => .test() ou .match()

  3. #3
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    Euh! Il faudrait être plus précis pour moi j'avoue suis pas un expert dans la matière!

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Oula faut chercher un peu mon ptit bonhomme !!

    il y' a pourtant plein d'exemples sur developpez avec des test et match de regexp


    Bon je suis dans un grand jour ... voici un exemple

    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
    var checkem=new Array();
    checkem['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var adrmail="truc@machin.com"
    		if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    			alert('ok match')
       			}
       		else {alert('ko match')}
     
    if(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/.test(adrmail))  {
    			alert('ok test')
       			}
       		else {alert('ko test')}
     
     
    }
    checkem['Email']()

  5. #5
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    j'essayer bien d'adapter tes codes à mon formulaire mais ça ne donne pas le résultat que je veux!

  6. #6
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    http://jacques-guizol.developpez.com...Exp/RegExp.php

    lis ceci, ça te permettra de te familiariser avec l'utilisation des expressions régulières

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Aller un tout petit effort ! il n'y a que ça a changer dans ton code ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    à la place de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(regex.value.length =/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)
    j'ai juste changé le nom de la variable contenant l'adresse mail à tester
    parceque regex comme non de string à tester est un peu ambigu, sacaht que regex = expression régulière.
    Après, à chacun sa façon de coder ...
    Mais par exemple je n'appellerais pas une variable "moniteger" si elle ne doit contenir que de l'alphabétique ...

  8. #8
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    Croyez moi j'ai vraiment essayé et voilà un exemple de mes essais
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
     <script type="text/javascript">
     
          // Fonction de désactivation de l'affichage des "tooltips"
     
          function deactivateTooltips() {
     
            var spans = document.getElementsByTagName('span'),
                spansLength = spans.length;
     
            for (var i = 0 ; i < spansLength ; i++) {
              if (spans[i].className == 'tooltip') {
                spans[i].style.display = 'none';
              }
            }
     
          }
     
     
          // La fonction ci-dessous permet de récupérer la "tooltip" qui correspond à notre input
     
          function getTooltip(el) {
     
            while (el = el.nextSibling) {
              if (el.className == 'tooltip') {
                return el;
              }
            }
     
            return false;
     
          }
     
     
          // Fonctions de vérification du formulaire, elles renvoient "true" si tout est ok
     
          var check = {}; // On met toutes nos fonctions dans un objet littéral
     
          check['Pseudo'] = function(id) {
     
            var name = document.getElementById(id),
                tooltipStyle = getTooltip(name).style;
     
            if (name.value.length >= 3) {
              name.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              name.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
         var checkem=new Array();
    checkem['Email'] = function() {
    		 var adrmail="truc@machin.com"
    		if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    			adrmail.className = 'correct';
              tooltipStyle.display = 'none';
       			}
       		else {adrmail.className = 'incorrect';
              tooltipStyle.display = 'inline-block';}
     
    }
    //checkem['Email'](); 
          check['pwd1'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                tooltipStyle = getTooltip(pwd1).style;
     
            if (pwd1.value.length >= 6) {
              pwd1.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd1.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
          check['pwd2'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                pwd2 = document.getElementById('pwd2'),
                tooltipStyle = getTooltip(pwd2).style;
     
            if (pwd1.value == pwd2.value && pwd2.value != '') {
              pwd2.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd2.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
     
          // Mise en place des événements
     
          (function() { // Utilisation d'une fonction anonyme pour éviter les variables globales.
     
            var myForm = document.getElementById('myForm'),
                  inputs = document.getElementsByTagName('input'),
                  inputsLength = inputs.length;
     
            for (var i = 0 ; i < inputsLength ; i++) {
              if (inputs[i].type == 'text' || inputs[i].type == 'password') {
     
                inputs[i].onkeyup = function() {
                  check[this.id](this.id); // "this" représente l'input actuellement modifié
                };
     
              }
            }
     
            myForm.onsubmit = function() {
     
              var result = true;
     
              for (var i in check) {
                result = check[i](i) && result;
              }
     
              if (result) {
                alert('Le formulaire est bien rempli.');
              }
     
              return false;
     
            };
     
            myForm.onreset = function() {
     
              for (var i = 0 ; i < inputsLength ; i++) {
                if(inputs[i].type == 'text' || inputs[i].type == 'password') {
                inputs[i].className = '';
                }
              }
     
              deactivateTooltips();
     
            };
     
          })();
     
     
          // Maintenant que tout est initialisé, on peut désactiver les "tooltips"
     
          deactivateTooltips();
     
        </script>
    Et la vérification s’effectue très bien pour les autres champs!

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Oula faut chercher un peu mon ptit bonhomme !!

    il y' a pourtant plein d'exemples sur developpez avec des test et match de regexp


    Bon je suis dans un grand jour ... voici un exemple

    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
    var checkem=new Array();
    checkem['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var adrmail="truc@machin.com"
    		if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    			alert('ok match')
       			}
       		else {alert('ko match')}
     
    if(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/.test(adrmail))  {
    			alert('ok test')
       			}
       		else {alert('ko test')}
     
     
    }
    checkem['Email']()
    Ta regexp ne permet pas de valider une adresse de ce genre :
    chou_bidou@monsite.com

    Tu as oublié de traiter le _
    et n'oublie jamais qu'une adresse email a le droit de s'écrire ainsi :
    nom@123.234.56.78 (oui une adresse ip à la place d'un domaine)
    Tiens voila une regexp qui gère quasiment tous les cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [\w-]+@([\w-]+\.)+[\w-]+

  10. #10
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    J'apprécie bien votre aide et surtout ne soyer pas presser de me répondre! Sil vous plait prenez le temps de tester mes codes et vous comprendrez bien là ou se situe le problème ainsi vous saurez me répondre! Merci d'avance
    copiez-coller mes codes dans un éditeur (bloc note ou autre) et voyer le résultat

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     var adrmail="truc@machin.com"
    alert(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)) 
    alert(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/.test(adrmail))

  12. #12
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    J’apprécie bien ton aide mais j'ai beau essayer tes codes mais je n'obtient pas du tout le résultat es-conté le champ adresse mail n'est toujours pas vérifier et cela je suis passé par 1000 manières toujours le problème persiste

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    J'ai le même problème, j'avais ça comme code fait par la personne qui a créé le site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function checkMail(nForm, nChamp) {
     
    	if (document.forms[nForm].elements[nChamp].value.length<3) {return 0}
    	else if (document.forms[nForm].elements[nChamp].value.indexOf('@',0)==-1 || document.forms[nForm].elements[nChamp].value.indexOf('.',0)==-1) {
    		return 1;
    	}
    	else
    	{
    		return 2;
    	} 
    }
    Un espace dans un mail n'est pas considéré comme une erreur.
    Je me suis inspirée de ce que Dukej a mis, mon nouveau code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function checkMail(nForm, nChamp) {
     
    	if (document.forms[nForm].elements[nChamp].value.length<3) {return 0}
    	else if (document.forms[nForm].elements[nChamp].value.match([\w-]+@([\w-]+\.)+[\w-]+))  {
    		return 1;
    	}
    	else
    	{
    		return 2;
    	} 
    }
    mais il me fait une erreur d'interprétation "caractère incorrect" sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (document.forms[nForm].elements[nChamp].value.match([\w-]+@([\w-]+\.)+[\w-]+))  {
    sur le caractère 63

    Mon code corrigera bien cette anomalie ? je ne vois pas pourquoi le [ est considéré comme caractère incorrect.
    Merci d'avance de votre aide,
    Valou

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .match([\w-]+@([\w-]+\.)+[\w-]+))
    match attend une regexp ...

    là tu lui passes ???

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    J'ai fait ça mais ça ne fonctionne mal, je déclare mal mon regexp ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var regexMail = new RegExp("/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+((\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)?)+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/");
    function checkMail(nForm, nChamp) {
     
    	if (document.forms[nForm].elements[nChamp].value.length<3) {return 0}
    	else if (document.forms[nForm].elements[nChamp].value.match(regexMail))  {
    		return 1;
    	}
    	else
    	{
    		return 2;
    	} 
    }
    Merci de votre aide.

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    J'ai utilisé la fonction test avec mon regexp et cela fonctionne impeccable pour mon espace.
    Voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function checkMail(nForm, nChamp) {
    var regexMail = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]*\\w$", "gi" ) ;
    	if (document.forms[nForm].elements[nChamp].value.length<3) {return 0} 
      else if ( regexMail.test(document.forms[nForm].elements[nChamp].value) == true ) {
    		return 2;
    	}
    	else
    	{
    		return 1;
    	} 
    }
    Avant de mettre résolu sur le post, j'ai juste un souci quand je teste avec toto@totofr au lieu de toto@toto.fr, pourtant j'ai bien \. qui doit gérer ce problème normalement.
    Pour info, c'est sur un site que j'ai trouvé ce regexp.

    Merci pour votre aide,
    Valou

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    c'est plutot l'etoile de fin à remplacer par {1}

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Merci SpaceFrog pour ton message, j'ai testé en changeant l'étoile de fin par {1} soit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regexMail = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]{1}\\w$", "gi" ) ;
    Mais malheureusement cela ne change rien et me crée un problème de plus, il accepte toto@totofr et refuse maintenant toto@toto.fr.

    Si quelqu'un peut m'aider, merci bien.

    Valou

    PS : Je vais fouiller encore plus dans le forum voir si quelqu'un avait mis un regexp pour le mail deja. Si je trouve, je met la solution.

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tout d'abord, il est préférable de passer par un littéral pour créer une RegExp que par le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regexMail = /^\w[\w+.-]*@[\w-]+\.\w[\w+.-]{1}\w$/gi;
    Personnellement, j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i
    qui me satisfait amplement.

    Sinon, pourquoi ne pas utiliser le type email ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="email" required="required" placeholder="Votre email..." />

  20. #20
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Beef c'est très bien d'être résolument tourné vers l'avenir, tu oublies simplement les anciennes versions des navigateurs ...

Discussions similaires

  1. [Tableaux] contrôle de champs get sans effet
    Par ceostar dans le forum Langage
    Réponses: 11
    Dernier message: 02/03/2007, 11h27
  2. enregistrement champs email sous BO
    Par miss_bo dans le forum Deski
    Réponses: 1
    Dernier message: 15/02/2007, 22h35
  3. test champs email avec une image pour bouton de validation
    Par becouet dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2006, 23h17
  4. contrôle de champ vide
    Par allowen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/03/2005, 14h16
  5. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 22h48

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