Je fais des pannes et je souhaite ajouter un contrôle qu'un paramètre d'une fonction est un nombre. Comment puis-je faire cela?
Quelque chose comme ça…
function fn(id) { return // true iff id is a number else false }
Encore mieux est si je peux vérifier que le paramètre est un nombre ET un entier valide.
function fn(id) { return typeof(id) === 'number'; }
Pour vérifier si c'est un nombre entier:
function fn(id) { return typeof(id) === 'number' && isFinite(id) && Math.round(id) === id; }
Je dirais
n === parseInt(n)
est assez. Notez trois '===' – il vérifie le type et la valeur
Vérifiez si le type est le numéro et s'il s'agit d'un int en utilisant parseInt
:
if (typeof id == "number" && id == parseInt(id))
=== signifie strictement égal à et == vérifie si les valeurs sont égales. Cela signifie "2" == 2 est vrai mais "2" === 2 est faux.
En utilisant une expression régulière
var intRegex = /^\d+$/; if(intRegex.test(num1)) { //num1 is a valid integer }
Exemple de == vs ===
function fn(id){ if((parseFloat(id) == parseInt(id)) && !isNaN(id)){ return true; } else { return false; } }