我编码了这个:
isNumberNotZero: function (num) {
// Return false if num is null, an empty string or zero
if (num === null || typeof num === "undefined" || (typeof num === "string" && num.length === 0) || num == 0) {
return false;
}
return true;
},
但是有更简单的方法可以做到这一点。我的代码看起来不太干净。
答案 0 :(得分:4)
当你只关心它是一个大于零的数字时,你正在做很多检查它不是的事情。
只需:
return typeof a === "number" && a > 0
答案 1 :(得分:1)
这是an answer to着名的Validate numbers in JavaScript - IsNumeric()问题:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
然后您的测试就像将该函数与> 0
:
return isNumber(input) && input > 0;
答案 2 :(得分:0)
如果要缩短代码,可以使用unary plus operator转换为整数。
这不是可读的,只适用于整数(例如,如果你的数字为0.5,这将把它视为零),但它快速而简洁。
function isNumberNotZero(num) {
return +num !== 0;
}