begin process at 2012 05 27 20:52:01
  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 :24 239

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

Source avec Zip Source avec une capture SLIDESHOW IMAGES ET TEXTES EN PUR JAVASCRIPT par ansuzpeorth
Source avec Zip INPUT TEXT AUTOMATIQUE CREATION SUPPRESSION par lycanges
Source avec Zip Source avec une capture TABLE_SV : TABLEAU DYNAMIQUE, MONTRER/CACHER COLONNE SUR DEM... par synanceia
COLONNES ADAPTABLES EN HAUTEUR par dronoide
Source avec Zip VECTEURS ET MATRICES: OUTILS GRAPHIQUES UTILES par william voirol

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...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,328 sec (3)

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