2

我目前正在做一个项目,我需要检查用户是否输入了一个数值。当他输入一个以小数点 ( .20) 开头的数字时,问题就来了。我一直在寻找解决方案,但现在我放弃了。isNaN 或 isNumeric 都不起作用。还尝试检查 like: if(value > 0),但这仅在用户输入前导零时有效。任何帮助将不胜感激!提前致谢!

已解决: isNaN 对我不起作用,因为我使用 parseInt() 而不是 parseFloat()。现在一切正常。我希望管理员原谅我提出的愚蠢问题!现在可以删除此线程。

4

4 回答 4

0

工作演示http://jsfiddle.net/sPt7q/1

利用

if(parseFloat(n) > 0){}

js在小提琴

var n = '.2';
if (n > 0) {
    alert(n);
}
if(parseFloat(n) > 0){
    alert(parseFloat(n));
}
于 2013-07-20T08:54:58.350 回答
0

尝试

function isInt(n) {
   return typeof n === 'number' && n % 1 == 0;
}

来自:如何检查数字是浮点数还是整数?

不过,这确实在 0.0 上失败了。

于 2013-07-20T08:56:29.240 回答
0

一种更好且更简单的方法是使用正则表达式:

var reg = new RegExp('^[1-9]\d*(\.\d+)?$');

或者

var reg = new RegExp('^[1-9]\d*(\.\d+)?$');

用户输入将是一个字符串(来自表单字段)。对照这个正则表达式检查那个字符串,这应该可以工作。

例子:

 if(reg.test(userInput)) {
  //returns true
} else {
  //returns false
}
于 2013-07-20T09:04:59.163 回答
0

尝试这个:

var val = .21;
if (!isNaN(val) && val.toString().indexOf('.') == -1) {
    console.log('valid number:' + val);
} else {
    console.log('invalid number: ' + val);
}

jsFiddle

于 2013-07-20T09:05:15.920 回答