我是网络开发的新手,在我的函数中想要检查给定的字符串值是否为数字。如果字符串不是有效数字,我想返回null。
以下适用于所有情况,除非字符串是" 0"在这种情况下,它返回null。
parseInt(columnSortSettings[0]) || null;
如何防止这种情况发生。显然parseInt不会将0视为整数!
答案 0 :(得分:9)
由于0
的行为是假的,因此您可以在这种情况下使用 isNaN()
var res = parseInt(columnSortSettings[0], 10);
return isNaN(res) ? null : res;
答案 1 :(得分:4)
这是因为你基本上测试0也是假的。 你可以做到
var n = columnSortSettings[0];
if(parseInt(n, 10) || n === '0'){
//...
}
您也可以测试它是否为数字
if(typeof(parseInt(n, 10)) === 'number'){
//...
}
但要注意原因
typeof Infinity === 'number';
typeof NaN === 'number';
答案 2 :(得分:1)
您可以使用 rxjs 库中的 isNumeric 运算符(导入rxjs / util / isNumeric