RegExp javascript sa me rend fou
Résolu
yann1123
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
yann1123 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
yann1123 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
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
- Erreur #125 javascript - Forum Mozilla Firefox
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