11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Juste une petite question, j'aimerai vérifier que l'adresse e-mail entrée par l'utilisateur soit valide, c'est à dire du style: ____@__.__ . Car pour l'instant dans mon script je teste juste s'il le champ est remplie donc ce n'est pas terrible et qu'il comporte au moins 6 caractères donc c'est un peu bidon comme vérification ... Smiley ohwell

Voici mon script:



<script language="javascript"><!--

var submitted = false;

function check_form() {
  var error = 0;
  var error_message = "Des erreurs sont apparues lors de la vérification de votre formulaire !\nMerci de faire les corrections suivantes :\n\n";

  if(submitted){ 
    alert( "Le formulaire a déjà été envoyé. Cliquer sur Ok et attendre la fin du processus."); 
    return false; 
  }
   
  var first_name = document.account_edit.firstname.value;
  var last_name = document.account_edit.lastname.value;
  var email_address = document.account_edit.email_address.value;  
  var street_address = document.account_edit.street_address.value;
  var postcode = document.account_edit.postcode.value;
  var city = document.account_edit.city.value;
  var telephone = document.account_edit.telephone.value;
  var password = document.account_edit.password.value;
  var confirmation = document.account_edit.confirmation.value;

  if (document.account_edit.elements['gender'].type != "hidden") {
    if (document.account_edit.gender[0].checked || document.account_edit.gender[1].checked) {
    } else {
      error_message = error_message + "* Le champ ' GENRE ' ne peut être vide.\n";
      error = 1;
    }
  }
 
  if (document.account_edit.elements['firstname'].type != "hidden") {
    if (first_name == '' || first_name.length < 2) {
      error_message = error_message + "* Le champ ' PRENOM ' doit avoir au moins 2 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['lastname'].type != "hidden") {
    if (last_name == '' || last_name.length < 2) {
      error_message = error_message + "* Le champ ' NOM ' doit avoir au moins 2 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['email_address'].type != "hidden") {
    if (email_address == '' || email_address.length < 6) {
      error_message = error_message + "* Le champ 'ADRESSE E-MAIL' doit avoir au moins 6 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['street_address'].type != "hidden") {
    if (street_address == '' || street_address.length < 5) {
      error_message = error_message + "* Le champ 'ADRESSE POSTALE' doit avoir au moins 5 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['postcode'].type != "hidden") {
    if (postcode == '' || postcode.length < 4) {
      error_message = error_message + "* Le champ 'CODE POSTAL' doit avoir au moins 4 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['city'].type != "hidden") {
    if (city == '' || city.length < 3) {
      error_message = error_message + "* Le champ 'VILLE' doit avoir au moins 3 caractères.\n";
      error = 1;
    }
  }


  if (document.account_edit.elements['country'].type != "hidden") {
    if (document.account_edit.country.value == 0) {
      error_message = error_message + "* Le champ 'PAYS'doit être précisé.";
      error = 1;
    }
  }

  if (document.account_edit.elements['telephone'].type != "hidden") {
    if (telephone == '' || telephone.length < 3) {
      error_message = error_message + "* Le champ 'NUMERO DE TELEPHONE' doit avoir au moins 3 caractères.\n";
      error = 1;
    }
  }

  if (document.account_edit.elements['password'].type != "hidden") {
    if ((password != confirmation) || (password == '' || password.length < 5)) {
      error_message = error_message + "* Le champ 'MOT DE PASSE' et 'Confirmation' doivent avoir au moins 5 caractères.\n";
      error = 1;
    }
  }

  if (error == 1) { 
    alert(error_message); 
    return false; 
  } else { 
    submitted = true; 
    return true; 
  } 
}
//--></script>



Mon code html de mon formulaire



<form name="account_edit" method="post" action="/verification.php" onSubmit="return check_form();"><input type="hidden" name="action" value="process"><table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading" height="17" valign="top" width="100%" align="center">Mon compte :</td>
            <td class="pageHeading" align="right"></td>
          </tr>
<tr><td height="10" colspan="2">&nbsp;</td></tr>
        </table></td>
      </tr>
      <tr>

        <td class="smallText"><br><font color="#FF0000"><small><b>NOTE :</b></font></small> Si vous poss&eacute;dez d&eacute;j&agrave; un compte, merci de vous identifier &agrave; la <a href="/authentification.html"><u>page de connexion</u></a>.</td>
      </tr>
      <tr>

        <td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="10"></td>
      </tr>
      <tr>
        <td>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td class="formAreaTitle">Vous</td>
  </tr>
  <tr>

    <td class="main"><table border="0" width="100%" cellspacing="0" cellpadding="2" class="formArea">
      <tr>
        <td class="main"><table border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td class="main">&nbsp;Genre :</td>
            <td class="main">&nbsp;
<input type="radio" name="gender" value="m">&nbsp;&nbsp;Homme&nbsp;&nbsp;<input type="radio" name="gender" value="f">&nbsp;&nbsp;Femme&nbsp;&nbsp;<small><font color="#AABBDD">requis</font></small></td>

          </tr>
          <tr>
            <td class="main">&nbsp;Pr&eacute;nom :</td>
            <td class="main">&nbsp;
<input type="text" name="firstname">&nbsp;&nbsp;<small><font color="#AABBDD">requis</font></small></td>
          </tr>
          <tr>
            <td class="main">&nbsp;Nom :</td>

            <td class="main">&nbsp;
<input type="text" name="lastname">&nbsp;&nbsp;<small><font color="#AABBDD">requis</font></small></td>
          </tr>
          <tr>
            <td class="main">&nbsp;Adresse E-Mail :</td>
            <td class="main">&nbsp;
<input type="text" name="email_address">&nbsp;&nbsp;<small><font color="#AABBDD">requis</font></small></td>
          </tr>

        </table></td>
      </tr>
    </table></td>

etc...



Je me doute qu'il faut utiliser les expressions régulières ... mais à vrai dire je ne sais pas trop comment cela fonctionne et y intégrer à mon code..

Donc si quelqu'un pourrait m'aider se serai sympa...
Merci d'avance Smiley smile
Modifié par Darki (13 Oct 2005 - 12:00)
Bonjour.

Peut-être que cette fonction pourra t'aider :


function checkMail (str) {
return ((/^[-a-zA-Z_0-9\.]{4,}@[-a-zA-Z_0-9]{2,}\.[a-z]{2,4}$/g).test(str));
}