begin process at 2010 03 22 08:47:42
  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 :15 852

Auteur : tucsoufle

Ecrire un message privé
Commentaire sur cette source (16)
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 SÉQUENCEUR par jdmcreator
Source avec Zip COMPRESSION DE TEXTE CÔTÉ CLIENT EN JS VIA ALGORYTHME LZW par niamor36
Source avec Zip VIRTUAL IPHONE (V.2) par loicseg
Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy

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

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

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

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

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

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

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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

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