¿Cómo determina JavaScript si es un número?

Método 1: utilizar la función isNaN()

La función isNaN () es una función global que viene con js. La función isNaN () se usa para verificar si su parámetro es un valor no numérico.

Si el valor x es el valor especial no numérico NaN (o se puede convertir a dicho valor), el valor devuelto es verdadero; si el valor x es cualquier otro valor, el valor devuelto es falso.

La desventaja de isNaN() es que los valores nulos, los espacios y las cadenas vacías se tratarán como 0.

NaN: no es un número

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

Desventajas: isNaN() tratará los valores nulos, los espacios y las cadenas vacías como 0, por lo que la verificación no es rigurosa.

Así que procéselo y úselo con el operador typeof.

Ejemplo:

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

Nota : Si es '36.3', typeof value === 'número' devolverá falso. Si desea que los números de tipo cadena también devuelvan verdadero, puede utilizar el siguiente método 3

Método 2: utilizar expresiones regulares

(1) La verificación devuelve verdadero siempre que sea un número (incluidos enteros positivos y negativos, 0 y números de punto flotante positivos y negativos)

/**
* 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
**/

function isNumber(val){
    
    

    var regPos = /^[0-9]+.?[0-9]*/; //判断是否是数字。
  
    if(regPos.test(val) ){
    
    
        return true;
    }else{
    
    
        return false;
    }
}

También puede cambiar la expresión regular según las diferentes necesidades para obtener los resultados que desea.

Método 3: utilizar el valor de retorno de parseFloat()

La función parseFloat() analiza una cadena y devuelve un número de punto flotante.

Esta función especifica si el primer carácter de una cadena es un número. Si es así, la cadena se analiza hasta que llega al final del número y el número se devuelve como un número en lugar de como una cadena.

Uso: analiza la cadena especificada en el parámetro en un número de punto flotante y lo devuelve.

/**
* 验证数据 是数字:返回true;不是数字:返回false
**/

function Number(val) {
    
    
  if (parseFloat(val).toString() == "NaN") {
    
    
    
    return false;
  } else {
    
    
    return true;
  }
}


isNaN(val)不能判断空串或一个空格
如果是一个空串、空格或null,而isNaN是做为数字0进行处理的,
而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。

Supongo que te gusta

Origin blog.csdn.net/mcband/article/details/124655277
Recomendado
Clasificación