Valider les nombres décimaux en JavaScript : IsNumeric()
Énoncé du problème :
Déterminer le méthode la plus efficace et la plus claire pour valider les nombres décimaux en JavaScript, garantissant une multiplateforme compatibilité.
Cas de test :
- IsNumeric('-1') → true
- EstNumérique('-1.5') → vrai
- IsNumeric('0') → vrai
- IsNumeric('0.42' ) → vrai
- IsNumeric('.42') → vrai
- IsNumeric('99,999 ') → faux
- IsNumeric('0x89f') → faux
- IsNumeric('#abcdef ') → faux
- IsNumeric('1.2.3') → false
- IsNumeric(' ') → faux
- IsNumeric('blah') → faux
Solution :
Pour obtenir une validation numérique universelle, quel que soit le type de données, une combinaison de isNaN et isFinite est recommandé :
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Ce code force efficacement toute saisie dans un nombre et vérifie la validité et la finitude. Cependant, il est important de noter qu'il considérera également les formats hexadécimaux et exponentiels comme numériques.
Approches supplémentaires :
-
isNumeric de jQuery : Compare la chaîne d'entrée d'origine avec sa représentation à virgule flottante pour déterminer si elles diffèrent de moins de 1.
-
Angular 4.3 isNumeric : Soustrait la valeur de sa représentation à virgule flottante et vérifie un résultat non NaN.
Considérations :
- Utilisez Number.isNaN et Number.isFinite dans ES6 pour une gestion améliorée de la conversion de type.
- La solution fournie traite toutes les valeurs numériques comme valides, y compris les formats hexadécimaux et exponentiels. Ajustez la mise en œuvre en fonction des exigences de validation spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn