Maison >interface Web >Questions et réponses frontales >Comment vérifier s'il s'agit d'un type numérique en javascript

Comment vérifier s'il s'agit d'un type numérique en javascript

藏色散人
藏色散人original
2021-10-19 14:22:314169parcourir

Méthodes permettant à JavaScript de vérifier s'il s'agit d'un type numérique : 1. Utilisez la fonction isNaN() pour déterminer si la valeur est un nombre ; 2. Utilisez des expressions régulières pour déterminer si ; la valeur est un nombre.

Comment vérifier s'il s'agit d'un type numérique en javascript

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

javascript Valider s'il s'agit d'un type numérique ? JS détermine si la valeur est un nombre

1. L'inconvénient de l'utilisation de la fonction isNaN()

isNaN() est que les valeurs nulles, les espaces et les chaînes vides seront traitées comme 0

NaN : pas un nombre

/**
*判断是否是数字
*
**/
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; 
  } 
}

. La fonction

isNaN() pour déterminer si une valeur est un nombre est :

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

isNaN() Explication détaillée

Lien de référence : https://wangdoc.com/javascript/types/number.html#isnan

Pour les tableaux vides et les tableaux avec un seul membre numérique, isNaN renvoie false.

isNaN([]) // false
isNaN([123]) // false
isNaN(['123']) // false

La raison pour laquelle le code ci-dessus renvoie false est que ces tableaux peuvent être convertis en valeurs numériques par la fonction Number. Veuillez vous référer au chapitre "Conversion de type de données".

Par conséquent, avant d'utiliser isNaN, il est préférable de déterminer le type de données.

function myIsNaN(value) {
  return typeof value === 'number' && !isNaN(value);
}

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 les nombres à virgule flottante positifs et négatifs), il retournera vrai

/**
* 校验只要是数字(包含正负整数,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 Si vous vérifiez les nombres positifs et négatifs, cela retournera 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;
    } 
}

3 Utilisez la fonction parseFloat()

/**
* 验证数据 是数字:返回true;不是数字:返回false
**/
function Number(val) {
  if (parseFloat(val).toString() == "NaN") {
    
    return false;
  } else {
    return true;
  }
}
//isNaN(val)不能判断空串或一个空格
//如果是一个空串、空格或null,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。

Apprentissage recommandé : "Tutoriel de base 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