Quand RegExp et toString font bon ménage.
décembre 4, 2007
Pour vérifier qu’un nombre est un entier en Javascript, chacun sa méthode. La plus répandue : une boucle for qui vérifie que chaque caratère est un nombre décimal… Voici donc ma méthode où j’utilise les expressions régulières.
1 2 3 4 5 6 function isInt (num) { var regexp = new RegExp('^[0-9]+$'); var result = regexp.test(num.toString()); return(result); }
Une chose importante à noter est l’appel à la fonction toString() pour pouvoir appliquer une expression régulière, sans ça bonjour les maux de tête !
Posted in 

26 février 2008 à 13:18
Une fonction isInt() devrait logiquement renvoyer false lorsqu’elle prend une chaîne en argument. Ta RegExp n’autorise pas non plus les entiers négatifs, voilà la fonction corrigée :
function isInt(num) {
if(typeof(num) == 'number') {
var regexp = new RegExp('^-?[0-9]+$');
var result = regexp.test(num.toString());
return result;
} else return false;
}
26 février 2008 à 15:41
Ma méthode renvoie bien false au cas où ce n’est pas un int qui soit passé en paramètre… (???)
Par contre je prends avec plaisir la modification conditionnelle du signe, merci !