首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Typescript中,如何检查字符串是否为数字

在Typescript中,如何检查字符串是否为数字
EN

Stack Overflow用户
提问于 2014-05-03 05:47:29
回答 13查看 288.1K关注 0票数 250

在Typescript中,这将显示一个错误,指出isNaN只接受数值

代码语言:javascript
复制
isNaN('9BX46B6A')

这将返回false,因为parseFloat('9BX46B6A')的计算结果为9

代码语言:javascript
复制
isNaN(parseFloat('9BX46B6A'))

我仍然可以在Visual Studio中显示错误,但我希望以正确的方式运行。

目前,我已经编写了这个修改后的函数-

代码语言:javascript
复制
static isNaNModified = (inputStr: string) => {
    var numericRepr = parseFloat(inputStr);
    return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length;
}
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2014-05-03 14:09:04

将字符串转换为数字的方法是使用Number,而不是parseFloat

代码语言:javascript
复制
Number('1234') // 1234
Number('9BX9') // NaN

如果您喜欢速记,也可以使用一元加号运算符:

代码语言:javascript
复制
+'1234' // 1234
+'9BX9' // NaN

在检查NaN时要小心(操作符===!==NaN中不能像预期的那样工作)。使用:

代码语言:javascript
复制
 isNaN(+maybeNumber) // returns true if NaN, otherwise false
票数 447
EN

Stack Overflow用户

发布于 2018-05-17 01:06:27

代码语言:javascript
复制
function isNumber(value: string | number): boolean
{
   return ((value != null) &&
           (value !== '') &&
           !isNaN(Number(value.toString())));
}
票数 50
EN

Stack Overflow用户

发布于 2020-03-04 18:45:06

您可以使用Number.isFinite()函数:

代码语言:javascript
复制
Number.isFinite(Infinity);  // false
Number.isFinite(NaN);       // false
Number.isFinite(-Infinity); // false
Number.isFinite('0');       // false
Number.isFinite(null);      // false

Number.isFinite(0);         // true
Number.isFinite(2e64);      // true

注意:全局函数isFinite()和后面的Number.isFinite()之间有很大的不同。在前者的情况下,字符串强制被执行-所以isFinite('0') === trueNumber.isFinite('0') === false

另外,请注意这在IE中是不可用的!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23437476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档