我是一个新手网站开发者,在我的函数中想要检查给定的字符串值是否为数字。如果字符串不是有效的数字,我想返回null。
以下方法对所有情况都有效,但当字符串为“0”时返回null。
parseInt(columnSortSettings[0]) || null;
我该如何避免这种情况发生。显然,parseInt将0视为非整数!
我是一个新手网站开发者,在我的函数中想要检查给定的字符串值是否为数字。如果字符串不是有效的数字,我想返回null。
以下方法对所有情况都有效,但当字符串为“0”时返回null。
parseInt(columnSortSettings[0]) || null;
由于0
被视为假,因此您可以在这种情况下使用isNaN()
。
var res = parseInt(columnSortSettings[0], 10);
return isNaN(res) ? null : res;
基数(radix)
。 - Andy这是因为您基本上正在测试0,而0也是false。
您可以这样做:
var n = columnSortSettings[0];
if(parseInt(n, 10) || n === '0'){
//...
}
如果它是一个数字,你也可以进行测试
if(typeof(parseInt(n, 10)) === 'number'){
//...
}
但要小心,因为
typeof Infinity === 'number';
typeof NaN === 'number';
进制
。 - Andy
0
是一个假值。 - Hacketo