Vérification d'une adresse mail
Bonjour,
Je cherche à vérifier la validité d'une adresse mail mais je n'arrive pas.
Voici mon code :
Ca ne doit pas être grand chose mais je ne vois pas ou est mon erreur.
Merci d'avance
Je cherche à vérifier la validité d'une adresse mail mais je n'arrive pas.
Voici mon code :
if(champ.Email.value == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}
else
{
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(champ.Email.value))
{
return false ;
}
return true;
Ca ne doit pas être grand chose mais je ne vois pas ou est mon erreur.
Merci d'avance
21 réponses
-
Salut super_carotte,
Voici le code entier de ma page :
<script language='JavaScript'>
function valider(champ)
{
//Gestion du nom
if(champ.Nom.value == '')
{
//Affiche la pop-up
alert('Le nom doit etre renseigne');
//Met le curseur dans le champ demandé
champ.Nom.focus();
return false;
}
else
{
if(champ.Nom.value.length < 2 || champ.Nom.value.length > 25)
{
alert('Veuillez renseigner un nom compris en 2 et 25 lettres');
champ.Nom.focus();
return false;
}
}
//Gestion du prénom
if(champ.Prenom.value == '')
{
alert('Le prenom doit etre renseigne');
champ.Prenom.focus();
return false;
}
else
{
if(champ.Prenom.value.length < 2 || champ.Prenom.value.length > 25)
{
alert('Veuillez renseigner un prenom compris en 2 et 25 lettres');
champ.Prenom.focus();
return false;
}
}
//Gestion de l'adresse
if(champ.Adresse.value == '')
{
alert('L adresse doit etre renseignee');
champ.Adresse.focus();
return false;
}
//Gestion de l'âge
if(champ.Age.value == '')
{
alert('L age doit etre renseigne');
champ.Age.focus();
return false;
}
var chkZ = 1;
for(i=0;i<champ.Age.value.length;++i)
if(champ.Age.value.charAt(i) < "0"
|| champ.Age.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1)
{
alert("Veuillez renseigner un nombre pour l age");
champ.Age.focus();
return false;
}
if(champ.Age.value.length < 1 || champ.Age.value.length > 3)
{
alert('Veuillez renseigner un age correct');
champ.Age.focus();
return false;
}
//Gestion du numéro de téléphone
var num_tel = champ.Telephone.value;
if(champ.Telephone.value == '')
{
alert('Le telephone doit etre renseigne');
champ.Telephone.focus();
return false;
}
else
{
var chiffres = new String(num_tel);
// Enlever tous les charactères sauf les chiffres
chiffres = chiffres.replace(/[^0-9]/g, '');
// Nombre de chiffres
compteur = chiffres.length;
if (chiffres.length != 10)
{
alert("Assurez-vous de rentrer un numero a 10 chiffres (xx-xx-xx-xx-xx)");
champ.Telephone.focus();
return false;
}
}
//Gestion de l'adresse mail
var adresse_email = champ.Email.value;
if(adresse_email == '')
{
alert('L email doit etre renseigne');
return false;
}else{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(adresse_email))
{
alert ('L adresse email correct!');
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
//Gestion de l'adresse du site
if(champ.Site.value == '')
{
alert('L adresse du site doit etre renseignee');
champ.Site.focus();
return false;
}
return true;
}
</script>
<center>
<b><FONT size="6pt">Veuillez renseigner vos informations :</FONT></b>
<br></br>
<form name="insertion" action="verif.php" method="POST" onSubmit="return valider(this)">
<table cellspacing="2px" cellpadding="2px;" rules="all" style="border:solid 1px black;">
<colgroup>
<col width="100px;" />
<col width="100;" />
</colgroup>
<tbody>
<tr>
<td>Civilite* :</td>
<td><input type="radio" name="Civilite" value="Mlle." id="Mlle." checked="checked">Mlle.<br>
<input type="radio" name="Civilite" value="Mme." id="Mme.">Mme.<br>
<input type="radio" name="Civilite" value="M." id="M.">M.</td>
</tr>
<tr>
<td>Nom* :</td>
<td><input name="Nom" size="12"></td>
</tr>
<tr>
<td>Prenom* :</td>
<td><input name="Prenom" size="12"></td>
</tr>
<tr>
<td>Adresse* :</td>
<td><input name="Adresse" size="40"></td>
</tr>
<tr>
<td>Pays* :</td>
<td><select name="Pays">
<option name="Pays" value="Allemagne">Allemagne</option>
<option name="Pays" value="Angleterre">Angleterre</option>
<option name="Pays" value="Espagne">Espagne</option>
<option name="Pays" value="France" selected="selected">France</option>
<option name="Pays" value="Italie">Italie</option></td>
</tr>
<tr>
<td>Age* :</td>
<td><input name="Age" size="1"></td>
</tr>
<tr>
<td>Telephone* :</td>
<td><input name="Telephone" size="12"></td>
</tr>
<tr>
<td>Email* :</td>
<td><input name="Email" size="40"></td>
</tr>
<tr>
<td>Site* :</td>
<td><input name="Site" size="40"></td>
</tr>
</tbody>
<tr align="center">
<td colspan="2"><input type="submit" value="Inserer">
</form>
</td>
</tr>
</table><b><FONT size="1pt">Veuillez renseigner les champs obligatoires (*)</FONT></b><br></br>
<form name="index" action="index.php" method="POST">
<input type="submit" value="Index">
</form>
</center>
Franchement je ne vois pas ce qui ne marche pas !
D'avance merci ! -
Mais ce code marche chez moi. COmment un copié collé de ce code pourrait il ne pas marché. tu le modifie forcement ou tu appel des boutons et zones texte qui ont pas le meme nom que dans mon code.
Pour ça que je t'ai demandé de me passer tout ton code (au moins les partie formulaire) -
Non toujours la même erreur !
-
Voila:
ça marche avec ça?
//Gestion de l'adresse mail
function valider(){
var adresse_email = document.getElementById('mail').value;
alert ('adresse_email= '+adresse_email);
if(adresse_email == '')
{
alert('L email doit etre renseigne');
return false;
}else{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(adresse_email))
{
alert ('OK');
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
}
</script>
<body>
<html>
<input type="text" id="mail"/>
<input type="button" onclick="valider()"/>
</html>
</body> -
Non toujours pareil ! Il me dit que l'adresse n'est pas valide alors qu'elle l'est ^^
-
ça marche avec ça? (j'ai ajouter l'accolade ouvrante de la fonction a la fin de la premiere ligne.)
function valider(champ){
//Gestion de l'adresse mail
var adresse_email = champ.Email.value;
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}
else
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(champ))
{
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
} -
Ok, donc tu es bloqué ou?
Tu peux me passer tout ton code que je cherche une solution?-
Ben toute ma fonction fonctionne a part ton bout de code qui ne marche pas lorsque je regroupe tout en une seule fonction !
Voici le code de vérif du mail :
function valider(champ)
//Gestion de l'adresse mail
var adresse_email = champ.Email.value;
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}
else
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(champ))
{
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
}
Lorsque je mets tout dans la meme fonction, lorsque je rentre un mail valide, il me dit toujours que l'adresse mail n'est pas valide et je ne vois pas du tout pourquoi ca ne fonction pas !
Merci
-
-
Je veux faire tout en un puisque derrière cette vérification, j'ai une autre vérification et lorsque je créé une 2eme fonction comme c'est le cas pour la vérif du mail, ça m'enchaine les pop up de validité du mail puis du site web qui arrive derrière alors que si je fais toute mes vérifs dans la même fonction, les vérifs sont faites champs par champs....
-
Quelle est l'utilité?
C'est tres bien d'appeler une autre fonction dans une fonction.
ça te permet de réutiliser du code.
Enfin, du coup, si tu veux tout d'un bloc ça donne:
(mais je te deconseil de faire ça. utilise plutot l'appel a une deuxième fonction)
<script type='text/JavaScript'>
//Gestion de l'adresse mail
function testmail(){
var adresse_email = document.getElementById('mail').value;
alert ('adresse_email= '+adresse_email);
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}else{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(mailteste))
{
alert ('OK');
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
}
</script>
<body>
<html>
<input type="text" id="mail"/>
<input type="button" onclick="testmail()"/>
</html>
</body> -
J'essaye de faire tout dans une et une seule fonction !
-
Comment ça "a ta magnere"? qu'essaie tu de faire de plus que ne fait deja mon code?
-
Ton code marche parfaitement ! Merci
Maintenant, j'essaye de refaire à ma manière mais je galère --' -
Merci ! je test et je te tiens au courant !
Encore merci :) -
Désolé, je suis au travail, je peux pas trop passer de temps a t'aider.
Voila un code qui fonctionne: (test le sur un page vierge)
ça resoud ton problème?
<script type='text/JavaScript'>
function bonmail(mailteste)
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(mailteste))
{
alert ('OK');
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
//Gestion de l'adresse mail
function testmail(){
var adresse_email = document.getElementById('mail').value;
alert ('adresse_email= '+adresse_email);
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}else{
bonmail(adresse_email);
}
}
</script>
<body>
<html>
<input type="text" id="mail"/>
<input type="button" onclick="testmail()"/>
</html>
</body> -
var adresse_email = champ.Email.value;
alert('adresse email= '+adresse_email);
Ces deux lignes marche niquel ! Donc en fait ma variable est bonne! C'est autre chose qui fait planter mon programme alors mais je ne vois vraiment pas ! -
le alert, c'est une pop up qui affiche se qui est marqué dans l'alert !
Je test -
On va commencer par verifier la valeure de ta variable email alors.
Enleve tout ton code sauf la premiere ligne et rejoute la ligne:
alert('adresse_email'+adresse_email);
Donc ton code doit ressembler a:
var adresse_email = champ.Email.value;
alert('adresse email= '+adresse_email);
le alert indique quoi? -
Salut super_carotte et merci de prendre du temps pour me répondre !
Je crois que mon soucis se trouve dans l'appellation du champ !
En effet, quand je déclare ça : 'var adresse_email = champ.Email.value;', j'ai l'impression que se qui fait planter c'est 'champ.Email.value' et pas le reste. Le reste me semble vraiment cohérent.
Je m'explique, je fais une fonction en javascript pour contrôler mon formulaire. Ma fonction se prénomme comme ça : function valider(champ) et dans mon 'preg_match', j'ai déclaré adresse_mail mais je ne sais pas se qui faut mettre dedans !
Merci -
Je n'ai pas pu tester mais avec quelque chose comme ça ça donne quoi?
function bonmail(mailteste)
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(mailteste))
{
return(true);
}
else
{
alert ('L adresse email entrée n est pas valide !');
return(false);
}
}
//Gestion de l'adresse mail
var adresse_email = champ.Email.value;
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
} else{
bonmail(adresse_email);
} -
Bonjour,
J'ai modifié mon code mais ça plante toujours au même endroit :
//Gestion de l'adresse mail
var adresse_email = champ.Email.value;
if(adresse_email == '')
{
alert('L email doit etre renseigne');
champ.Email.focus();
return false;
}
else
$regex_mail = '^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$';
/* On vérifie que le format de l'e-mail est correct */
if (preg_match($regex_mail, adresse_email))
{
alert ('L adresse email entrée n est pas valide !');
champ.Email.focus();
return false;
}
return true;
Le 1er if marche correctement par contre la 2eme partie du code ne marche pas.
Merci
- 1
- 2
Suivant