begin process at 2012 02 11 23:50:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > VÉRIFIER QU'UNE VARIABLE EST UN NOMBRE ENTIER.

VÉRIFIER QU'UNE VARIABLE EST UN NOMBRE ENTIER.


 Information sur la source

Note :
9,75 / 10 - par 4 personnes
9,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :16/03/2005 Date de mise à jour :19/03/2005 00:48:37 Vu :23 081

Auteur : tucsoufle

Ecrire un message privé
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

Salut !

Bon, voila, ça fait plusieurs fois que je vois cette demande sur le forum alors j'ai décidé de mettre ce petit bout de code.

En fait, c'est une fonction qui vérifie qu'une variable est un nombre. C'est à dire que la variable contient uniquement
des chiffres et aucun autres caractéres.


Source

  • <script type="text/javascript">
  • function verif_numeric(variable)
  • {
  • var exp = new RegExp("^[0-9]+$","g");
  • return exp.test(variable);
  • }
  • </script>
<script type="text/javascript">
function verif_numeric(variable)
{
   var exp = new RegExp("^[0-9]+$","g");
   return exp.test(variable);
}
</script>

 Conclusion

Voila, c'est tout simple et bien optimisé je pense !


Et pour finir, quelques tests :

<script type="text/javascript">
la_variable = "cac40";
if(verif_numeric(la_variable))
{
    window.document.write(la_variable+' : Cette variable est numérique. <br />');
}
else
{
    window.document.write(la_variable+' : Cette variable n\'est pas un numérique. <br />');
}

la_variable = "2005";
if(verif_numeric(la_variable))
{
    window.document.write(la_variable+' : Cette variable est numérique. <br />');
}
else
{
    window.document.write(la_variable+' : Cette variable n\'est pas un numérique. <br />');
}
</script>



 Historique

17 mars 2005 20:54:56 :
18 mars 2005 21:53:44 :
optimisation du code
18 mars 2005 22:09:10 :
encore un petit oubli !
19 mars 2005 00:48:38 :
maintenant c'est des entiers

 Sources de la même categorie

COLONNES ADAPTABLES EN HAUTEUR par dronoide
Source avec Zip VECTEURS ET MATRICES: OUTILS GRAPHIQUES UTILES par william voirol
Source avec Zip Source avec une capture HTML5 PLAYER par kazma
Source avec Zip Source avec une capture SCROLLBAR PERSONNALISABLE par kazma
Source avec Zip INFO BULLE par RudiRatlos

Commentaires et avis

Commentaire de Arto_8000 le 16/03/2005 23:31:21

Plus simple, t'as juste a utilisé la fonction isFinite(variable) au lieu de ton code . Si la variable est numérique il retourne true sinon false.Tu pourais alors, faire ton code comme ceci :

if(isFinite(la_variable))
{
document.write(la_variable+' : Cette variable est numérique. <br />');
}
else
{
document.write(la_variable+' : Cette variable n\'est pas un numérique. <br />');
}

Commentaire de tucsoufle le 17/03/2005 01:28:37

non, je suis désolé !
la fonction isFinite() verifie qu'une valeur, qu'un nombre peut etre traité par Javascript mais si ce nombre ne peut être traiter par Javascript, elle va renvoyer FALSE.
Dans mon cas, non.

De plus, ma fonction (peut etre que j'aurai du être plus explicite dans mon explication) renvoi FALSE si un caractére autre qu'un numérique est trouvé dans la variable.
on peut prendre en exemple un nombre décimale : 20.05
   isFinite te renverra TRUE
   ma fonction te renverra FALSE car elle va trouver un point

Voila la différence !

Commentaire de coucou747 le 17/03/2005 20:03:52 administrateur CS

et si ta variable est nulle... c'est considéré ici comme un nombre, alors qu'un nombre null c'est 0...

Commentaire de tucsoufle le 17/03/2005 20:53:11

oui, je n'y avait pas pensé, je modifie ça tout de suite.
une petite condition en plus :=)

Commentaire de coucou747 le 18/03/2005 17:38:39 administrateur CS

NON !!!

ta reg exp pouvait le faire elle même...

Commentaire de tucsoufle le 18/03/2005 22:08:18

re
effectivement, j'avoue que je ne connaissait pas bien les possibilités de RegExp donc voila, je m'y suis mis !!!

je pense que cette fois c'est bon !

Commentaire de coucou747 le 18/03/2005 22:24:50 administrateur CS

domage...
c'est toujours pas ça...
je te donnes une exp reg, tu mpe dis ce que tu en penses :
^[0-9.]+$
ça m'a l'air un peu plus corect...

Commentaire de tucsoufle le 19/03/2005 00:50:41

ouais, effectivement mais j'ai enlevé le point pour que ce ne soit que des entiers !!!
merci bien

Commentaire de coucou747 le 19/03/2005 00:58:01 administrateur CS

les exp reg c'est vraiment compliqué, pour ma première, j'y ai passé plus d'une dizaine d'heures... dont 6 à lire de la doc...

Commentaire de tucsoufle le 19/03/2005 01:13:50

je confirme, j'y ai passer un bon petit moment tout a l'heure rien que pour comprendre comment on met plusieurs expressions en meme temps !
Et au bout de ce temps et de quelques essais, je me dit que ça marche, que mon code est bon... et ben non
y a coucou747 qui me dit.. NON lol

Donc je m'y suis remis encore une fois !
Par contre, même si c'est compliqué à comprendre, les reg exp peuvent être vraiment interessantes à utiliser pour clarifier le code quand on connait bien le concept.

En tout cas, une chose est sur, je vais approfondir la chose encore plus dans les jours qui suivent...

Commentaire de coucou747 le 19/03/2005 09:12:03 administrateur CS

moi ça m'a servi pour parser du html, pour vérifier des mots de passes, des mails, des urls...

Commentaire de gilids le 22/03/2005 11:42:13

Et pourquoi pas parseInt() ?


Commentaire de stfou le 09/04/2007 18:46:21

Essaie mon code :

document.write(variable + !isNaN(Number(variable)) && Math.round(variable)==variable ? " : Cette variable est un nombre entier." : " : Cette variable n'est pas un nombre entier";

Number : Convertit "variable" en un nombre ("15692" >> 15692) ou renvoi NaN ("coucou" >> NaN)
isNaN : Vérifie si la variable est bien un nombre (Not a Number) revoie false si oui et true sinon.
Math.round(variable)==variable : arrondi la variable et verifie si elle est égale :
(15.692 >arrondi> 15 // 15!=15.692)
(8 >arrondi> 8 // 8=8)

Commentaire de stfou le 09/04/2007 18:49:44

Mais bon, c'est plus simple avec une RegExp. Au passage, tu peux encore alleger ton code :

var isEntier=function(variable){return new RegExp("^[0-9]+$","g").test(x)};
donnera :
if(isEntier(mavariable)){alert("entier")}else{alert("pas entier")};


Commentaire de stfou le 09/04/2007 18:50:21

GILDIS >> Comment comptes-tu utiliser parseInt() ?

Commentaire de karasnake le 20/05/2008 17:27:06 10/10

bon code simple efficace

Commentaire de egaille le 07/11/2010 16:56:15

Il y a bien plus simple, comme le suggérait GILDIS:

if (parseInt(nombre) == nombre){alert("entier");}

c'est tout.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,354 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales