Vérification contenu d'une case (Javascript)

Résolu/Fermé
abderrahim84 Messages postés 19 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 26 août 2012 - 14 févr. 2012 à 10:11
abderrahim84 Messages postés 19 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 26 août 2012 - 15 févr. 2012 à 09:40
Bonjour,

Je voudrais savoir comment vérifier en javascript qu'une case ne contient que des chiffres ?

Par exemple la saisie d'une année ?

Je vérifie déjà que la case n'est pas vide et que la longueur est de 4.

if (document.form1.annee.value=="")
		{
			alert("Veuillez saisir l'année de parution \n");
			document.form1.annee.focus();
		
		}
		else if (document.form1.annee.value.length!=4)
		{
			alert("L'année de parution doit comporter  4 caractères \n");
			document.form1.annee.focus();
			
		}


A voir également:

1 réponse

[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
Modifié par [Dal] le 14/02/2012 à 14:29
Salut abderrahim84,

Avec une expression rationnelle ("regex" ou "regular expression" en anglais), tu peux vérifier en javascript si une chaîne est composée exclusivement de chiffres et a une longeur de 4 caractères en une fois.

Tu peux te passer de "else if (document.form1.annee.value.length!=4)" et tu fais dès lors comme cela :

  else if ( document.form1.annee.value.match(/^[0-9]{4}$/) )    
  {    
   alert("L'année de parution doit comporter 4 caractères et être exclusivement composée de chiffres\n");    
   document.form1.annee.focus();    
       
  }

Explication :
^: début de ligne
[0-9] : n'importe quel chiffre entre 0 et 9
{4} : présents consécutivement 4 fois
$ : fin de ligne

https://www.w3schools.com/jsref/jsref_obj_regexp.asp
http://www.w3schools.com/js/js_obj_regexp.asp


Dal
1
abderrahim84 Messages postés 19 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 26 août 2012 3
14 févr. 2012 à 15:28
Merci Dal !
Cependant j'ai testé et ça marche pas :\
0
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
14 févr. 2012 à 18:01
Oups, il manque la négation (!), et le "value" est en trop, car match est une fonction de la chaîne.

Ce test devrait être mieux :

else if ( !document.form1.annee.match(/^[0-9]{4}$/) )

Dal
0
abderrahim84 Messages postés 19 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 26 août 2012 3
15 févr. 2012 à 09:40
Merci beaucoup ! ça marche ^^
Mais il faut mettre le value avant match tout de même :)

Merci encore...
0