打字稿:检查字符串是否有数字

时间:2015-09-24 12:56:28

标签: javascript typescript

我是网络开发的新手,在我的函数中想要检查给定的字符串值是否为数字。如果字符串不是有效数字,我想返回null。

以下适用于所有情况,除非字符串是" 0"在这种情况下,它返回null。

parseInt(columnSortSettings[0]) || null;

如何防止这种情况发生。显然parseInt不会将0视为整数!

3 个答案:

答案 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