Maison >interface Web >js tutoriel >Comment déterminer si une valeur spécifiée est un nombre en javascript

Comment déterminer si une valeur spécifiée est un nombre en javascript

青灯夜游
青灯夜游original
2021-10-13 15:54:368340parcourir

Méthode de jugement : 1. Utilisez la fonction isNaN(), la syntaxe "isNaN(value)", si la valeur est un nombre, retournez false ; 2. Utilisez la valeur de retour de typeof, la syntaxe "typeof(value)" , si la valeur renvoyée est « Nombre », c'est un nombre ; 3. Utilisez des expressions régulières pour juger.

Comment déterminer si une valeur spécifiée est un nombre en javascript

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

javascript détermine si la valeur spécifiée est un nombre

Méthode 1 : fonction isNaN() La fonction

isNaN() peut déterminer si la valeur n'est pas un nombre (Not-a-Number). Cette fonction renvoie vrai si la valeur est égale à NaN. Sinon, retournez false. L'inconvénient de

var c="hello"; //字符串
isNaN(c); //返回一个true;
var c=10; //数字
isNaN(c);//返回一个false

isNaN() est que null, espace et chaîne vide seront traités comme 0, ce qui doit être optimisé

/**
*判断是否是数字
*
**/

function isRealNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除,
    
  if(val === "" || val ==null){
        return false;
  }
   if(!isNaN(val)){    
  //对于空数组和只有一个数值成员的数组或全是数字组成的字符串,
  //isNaN返回false,例如:'123'、[]、[2]、['123'],isNaN返回false,
   //所以如果不需要val包含这些特殊情况,则这个判断改写为if(!isNaN(val) && typeof val === 'number' )
    return true; 
  }

 else{ 
    return false; 
  } 
}

Méthode 2 : utilisez la valeur de retour de typeof

Méthode de vérification : si le retour la valeur est Number , c'est un nombre ; si la valeur de retour est une String ou autre, ce n'est pas un nombre. Comme indiqué ci-dessous :

var a=123;
var b='123abc';
typeof(a) //Number
typeof(b) //String

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

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

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

(2), Vérifiez les nombres positifs et négatifs et renvoie true

/**
* 校验正负正数就返回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;
    } 
}

[Apprentissage recommandé : Tutoriel avancé 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