Javascript从字符串解析整数

Sim*_*Fox 3 javascript parsing

我想要做的是确定字符串是否为数字.我想知道人们对我想要解决的两个解决方案的看法(或者如果有一个我还没有找到的更好的解决方案).parseInt函数不合适,因为它将为"40岁"之类的参数返回一个整数值.我决定的两个解决方案是:

将Integer.valueOf()与try catch一起使用

function isNumeric(quantity)
{
    var isNumeric = true
    try
    {
        Integer.valueOf(quantity)
    }
    catch(err)
    {
        isNumeric = false
    }
    return isNumeric
}
Run Code Online (Sandbox Code Playgroud)

或单独检查每个角色

function IsNumeric(quantity)
{
    var validChars = "0123456789";
    var isNumber = true;
    var nextChar;

    for (i = 0; i < quantity.length && isNumber == true; i++) 
    { 
        nexChar = quantity.charAt(i); 
        if (validChars.indexOf(nextChar) == -1) 
        {
            isNumber = false;
        }
    }
    return IsNumber;
}
Run Code Online (Sandbox Code Playgroud)

我原本以为会有比这两者更简单的解决方案.我错过了什么吗?

注意:我正在使用jQuery aswel所以如果有一个jQuery解决方案就足够了

CMS*_*CMS 11

我必须做你想要的事情,但我需要验证一个变量是否包含一个数字而不知道它的类型,它可能是一个数字字符串(也考虑指数表示法等),一个Number对象,基本上是任何东西.

我不得不关心隐式类型转换,例如!isNaN(true) == true不好.

我最后写了一套30+单元测试,你可以在这里找到,我使用以下函数,它通过我所有的测试:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
Run Code Online (Sandbox Code Playgroud)


mim*_*net 7

为什么不isNaN(obj)呢?

function IsNumeric (value) {
    return (!((isNaN(value)) || (value.length == 0)));
}
Run Code Online (Sandbox Code Playgroud)