我希望在与旧的VB6 IsNumeric()函数相同的概念空间中有什么东西?


当前回答

只需使用isNaN(),这将把字符串转换为数字,如果得到有效的数字,将返回false。。。

isNaN("Alireza"); //return true
isNaN("123"); //return false

其他回答

这样对我来说很有用。

function isNumeric(num){
    let value1 = num.toString();
    let value2 = parseFloat(num).toString();
    return (value1 === value2);
}

console.log(
    isNumeric(123),     //true
    isNumeric(-123),    //true
    isNumeric('123'),   //true
    isNumeric('-123'),  //true
    isNumeric(12.2),    //true
    isNumeric(-12.2),   //true
    isNumeric('12.2'),  //true
    isNumeric('-12.2'), //true
    isNumeric('a123'),  //false
    isNumeric('123a'),  //false
    isNumeric(' 123'),  //false
    isNumeric('123 '),  //false
    isNumeric('a12.2'), //false
    isNumeric('12.2a'), //false
    isNumeric(' 12.2'), //false
    isNumeric('12.2 '), //false
)

尝试isNan函数:

isNaN()函数确定值是否为非法数字(Not-a-number)。如果值等于NaN,则此函数返回true。否则返回false。此函数与特定于Number的Number.isNaN()方法不同。全局isNaN()函数将测试值转换为Number,然后对其进行测试。Number.isNan()不会将值转换为Number,并且对于任何非Number类型的值都不会返回true。。。

我是这样做的:

function isString(value)
{
    return value.length !== undefined;
}
function isNumber(value)
{
    return value.NaN !== undefined;
}

当然,如果您传递其他定义了“length”的对象,isString()将在这里出错。

只需使用isNaN(),这将把字符串转换为数字,如果得到有效的数字,将返回false。。。

isNaN("Alireza"); //return true
isNaN("123"); //return false

您也可以使用简单的parseInt函数。。。带有if条件例如

if (parseInt(i)){
    (i in dic) ? dic[i] += 1 : dic[i] = 1
}