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)
为什么不isNaN(obj)呢?
function IsNumeric (value) {
return (!((isNaN(value)) || (value.length == 0)));
}
Run Code Online (Sandbox Code Playgroud)