Maison  >  Article  >  interface Web  >  Comment JavaScript détermine-t-il s'il s'agit d'un nombre ?

Comment JavaScript détermine-t-il s'il s'agit d'un nombre ?

coldplay.xixi
coldplay.xixioriginal
2021-04-09 15:12:598414parcourir

Comment utiliser JavaScript pour déterminer s'il s'agit d'un nombre : 1. Utilisez la fonction [isNaN()] ; 2. Utilisez des expressions régulières ; 3. Utilisez la valeur de retour de [parseFloat()].

Comment JavaScript détermine-t-il s'il s'agit d'un nombre ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur DELL G3.

Méthode JavaScript pour déterminer s'il s'agit d'un nombre :

Méthode 1 : Utiliser la fonction isNaN()

isNaN () fonction C'est une fonction globale fournie avec js. La fonction isNaN() est utilisée pour vérifier si son paramètre est une valeur non numérique.

Si la valeur x est la valeur non numérique spéciale NaN (ou peut être convertie en une telle valeur), la valeur renvoyée est vraie ; si la valeur x est une autre valeur, false est renvoyé.

L'inconvénient de isNaN() est que null, l'espace et la chaîne vide seront traités comme 0

NaN : pas un nombre

<script>
document.write(isNaN(123));  //数字      ----false
document.write(isNaN(-1.23));  //数字    ----false
document.write(isNaN(5-2));  //数字      ----false
document.write(isNaN(0));  //数字        ----false
document.write(isNaN("Hello"));  //字符串 ----true
document.write(isNaN("2005/12/12"));  //字符串----true
</script>

Inconvénient : isNaN() sera nul , les espaces et les chaînes vides sont traités comme 0, la vérification n'est donc pas rigoureuse.

Alors traitez-le et utilisez-le avec le type d'opérateur.

Exemple :

// true:数值型的,false:非数值型
function myIsNaN(value) {
   return (typeof value === &#39;number&#39; && !isNaN(value));
}
myIsNaN(10);      ----true
myIsNaN(null);    ----false
myIsNaN( );      ----false
myIsNaN();       ----false

Remarque : S'il s'agit de '36.3', typeof value === 'number', il renverra false. Si vous souhaitez que les nombres de type chaîne renvoient également true, vous devez le faire. peut utiliser la méthode 3 suivante

Méthode 2 : Utilisez des expressions régulières

(1), vérifiez tant qu'il s'agit d'un nombre (y compris les entiers positifs et négatifs, 0 et nombres à virgule flottante positifs et négatifs) Il renvoie vrai

/**
* 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
**/
function isNumber(val){
    var regPos = /^[0-9]+.?[0-9]*/; //判断是否是数字。
  
    if(regPos.test(val) ){
        return true;
    }else{
        return false;
    }
}

(2), et lors de la vérification des nombres positifs et négatifs, il renvoie vrai

/**
* 校验正负正数就返回true
**/
function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数 
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) && regNeg.test(val)){
        return true;
    }else{
        return false;
    } 
}

Méthode 3 : utilisez le retour valeur de la fonction parseFloat()

parseFloat() peut analyser une chaîne et renvoyer un nombre à virgule flottante.

Cette fonction précise si le premier caractère de la chaîne est un nombre. Si tel est le cas, la chaîne est analysée jusqu'à ce qu'elle atteigne la fin du nombre, et le nombre est renvoyé sous forme de nombre plutôt que de chaîne.

Utilisation : analyse la chaîne spécifiée dans le paramètre en un nombre à virgule flottante et la renvoie.

/**
* 验证数据 是数字:返回true;不是数字:返回false
**/
function Number(val) {
  if (parseFloat(val).toString() == "NaN") {
    
    return false;
  } else {
    return true;
  }
}

isNaN(val) ne peut pas juger une chaîne vide ou un espace

S'il s'agit d'une chaîne vide, d'un espace ou d'un null, et que isNaN est traité comme un nombre 0,

ParseInt et parseFloat renvoient un message d'erreur provoqué par la vérification isNaN lâche.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo javascript

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