Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 2010
-
16 mars 2005 à 23:31
egaille
Messages postés2Date d'inscriptionmardi 10 juillet 2012StatutMembreDernière intervention10 juillet 2012
-
7 nov. 2010 à 16:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 9 avril 2007 à 18:49
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")};
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 9 avril 2007 à 18:46
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)
gilids
Messages postés7Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention19 avril 2006 22 mars 2005 à 11:42
Et pourquoi pas parseInt() ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 mars 2005 à 09:12
moi ça m'a servi pour parser du html, pour vérifier des mots de passes, des mails, des urls...
tucsoufle
Messages postés1250Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention30 septembre 20071 19 mars 2005 à 01:13
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...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 mars 2005 à 00:58
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...
tucsoufle
Messages postés1250Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention30 septembre 20071 19 mars 2005 à 00:50
ouais, effectivement mais j'ai enlevé le point pour que ce ne soit que des entiers !!!
merci bien
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 mars 2005 à 22:24
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...
tucsoufle
Messages postés1250Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention30 septembre 20071 18 mars 2005 à 22:08
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 !
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 18 mars 2005 à 17:38
NON !!!
ta reg exp pouvait le faire elle même...
tucsoufle
Messages postés1250Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention30 septembre 20071 17 mars 2005 à 20:53
oui, je n'y avait pas pensé, je modifie ça tout de suite.
une petite condition en plus :=)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 mars 2005 à 20:03
et si ta variable est nulle... c'est considéré ici comme un nombre, alors qu'un nombre null c'est 0...
tucsoufle
Messages postés1250Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention30 septembre 20071 17 mars 2005 à 01:28
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 !
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 16 mars 2005 à 23:31
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.
');
}
else
{
document.write(la_variable+' : Cette variable n\'est pas un numérique.
');
}
7 nov. 2010 à 16:56
if (parseInt(nombre) == nombre){alert("entier");}
c'est tout.
20 mai 2008 à 17:27
9 avril 2007 à 18:50
9 avril 2007 à 18:49
var isEntier=function(variable){return new RegExp("^[0-9]+$","g").test(x)};
donnera :
if(isEntier(mavariable)){alert("entier")}else{alert("pas entier")};
9 avril 2007 à 18:46
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)
22 mars 2005 à 11:42
19 mars 2005 à 09:12
19 mars 2005 à 01:13
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...
19 mars 2005 à 00:58
19 mars 2005 à 00:50
merci bien
18 mars 2005 à 22:24
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...
18 mars 2005 à 22:08
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 !
18 mars 2005 à 17:38
ta reg exp pouvait le faire elle même...
17 mars 2005 à 20:53
une petite condition en plus :=)
17 mars 2005 à 20:03
17 mars 2005 à 01:28
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 !
16 mars 2005 à 23:31
if(isFinite(la_variable))
{
document.write(la_variable+' : Cette variable est numérique.
');
}
else
{
document.write(la_variable+' : Cette variable n\'est pas un numérique.
');
}