RegExp javascript sa me rend fou
Résolu
yann1123
Messages postés
109
Statut
Membre
-
yann1123 Messages postés 109 Statut Membre -
yann1123 Messages postés 109 Statut Membre -
Bonjour,
J'ai un petit problème je n'arrive pas a faire un test pour voir si il ya la présence de l'arobase du point la présence du souligné et du tiré:
var exp_mail = new RegExp("^@[a-z0-9.-_]$","i");
mais je sais pas pourquoi mais il ignore tout le temps ma condition:
if (exp_mail.exec(email)==0)
{
alert ('votre mail n\'est pas valide')
return false;
}
j'ai déjà essayer avec la méthode test mais rien y fait. le navigateur ignore tout le temps ma conditions. et c'est seulement cette condition qu'il ignore les autres marches a merveille.
je vous envois toute la page html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>TEST javscript</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-script" content="text/javascript" />
<!-- JAVSCRIPT -->
<script type="text/javascript">
<!--
function validation()
{
var texte = document.formulaire.texte.value;
var texte_length = texte.length;
var exp = new RegExp("^[a-zéèàçûîïô]$","i");
var exp1 = new RegExp("^[0-9_&'()§!.;,?:=±$*€-]$");
var exp_mail = new RegExp("^@[a-z0-9.-_]$","i");
var email = document.formulaire.email.value;
if (texte =="" || texte_length>7 && texte_length<=3 || email=="")
{
alert('l\'un de vos champs est vide');
texte="";
return false;
}
if (exp_mail.exec(email)==0)
{
alert ('votre mail n\'est pas valide')
return false;
}
if (exp.test(texte)=="false")
{
alert('invalide');
texte=="";
return false;
}
if (exp1.exec(texte))
{
alert('invalide');
texte=="";
return false;
}
if (exp1.exec(texte)+exp.test(texte)=="false")
{
alert('invalide');
texte=="";
return false;
}
else
{
alert('vos données sont en cours de transfert cliquez sur ok');
return true;
}
}
//-->
</script>
</head>
<body>
<form name="formulaire" action="test2.html" onsubmit="return validation()">
<pre>Test texte <input type="text" name="texte" value="" /><br />
Test mail <input type="text" name="email" value="" /></pre>
<input type="submit" value="valider" />
<input type="reset" value="annuler" />
</form>
</body>
</html>
merci d'avance
A voir également:
- RegExp javascript sa me rend fou
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Windows
- A javaScript error occurred in the main process - Forum Handicap / Accessibilté
- Faux billet puy du fou - Forum Consommation & Internet
- Afficher un tableau javascript en html ✓ - Forum Javascript
5 réponses
Le - est un méta caractère dans une classe, en le mettant entre le . et le _, tu indiques de prendre tous les caractères situés entre les deux (voir table ascii).
Il faut donc soit l'échapper, soit le mettre en début ou fin de la classe.
var exp_mail = new RegExp("^@[a-z0-9.-_]$","i");
C'est incorrect, tu n'as pas de quantificateurs pour ta classe de caractères, de plus en mettant l'@ en premier, il faudrait que l'email commence par @.
Le masque de l'expression devrait plutôt ressembler à quelque chose comme :
"^[a-z0-9_.-]{3,}@[a-z0-9_.-]{3,}\.[a-z]{2,5}$"
Il faut donc soit l'échapper, soit le mettre en début ou fin de la classe.
var exp_mail = new RegExp("^@[a-z0-9.-_]$","i");
C'est incorrect, tu n'as pas de quantificateurs pour ta classe de caractères, de plus en mettant l'@ en premier, il faudrait que l'email commence par @.
Le masque de l'expression devrait plutôt ressembler à quelque chose comme :
"^[a-z0-9_.-]{3,}@[a-z0-9_.-]{3,}\.[a-z]{2,5}$"
voilà j'espere que ça pourra t'aider!
function testEmail(chaine){
var reg=new RegExp("[@.-_]+", "g");
var tab = chaine.split(reg);
if ((tab[0]==null)||(tab[1]==null)||(tab[2]==null)||(tab[3]==null)||(tab[4]==null)) return true;
else return false;
}
courage...
function testEmail(chaine){
var reg=new RegExp("[@.-_]+", "g");
var tab = chaine.split(reg);
if ((tab[0]==null)||(tab[1]==null)||(tab[2]==null)||(tab[3]==null)||(tab[4]==null)) return true;
else return false;
}
courage...
merci ^^ lol et pour le courage j'en ai besoin haha mais sa avance bien... je commence a avoir un bon niveau.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question