在打字稿中检查 NAN [重复]
Posted
技术标签:
【中文标题】在打字稿中检查 NAN [重复]【英文标题】:checking NAN in typescript [duplicate] 【发布时间】:2017-10-03 06:49:29 【问题描述】:我想检查输入的字符串是否是打字稿中的 NAN。目前我正在这样做
if (isNaN(parseInt(input))) return "It's not a number."
如果我输入 @@@@ 或 #### 可以正常工作,但如果我输入“444@@@@”,则无法正常工作。
【问题讨论】:
这个问题与TypeScript无关,TypeScript只是javascript之上的一个打字层和一个转译器。 【参考方案1】:parseInt
解析直到输入字符串中的第一个非数字,see MDN:
如果 parseInt 在指定的基数中遇到不是数字的字符,它会忽略它和所有后续字符并返回解析到该点的整数值。 parseInt 将数字截断为整数值。允许前导和尾随空格。
在这种情况下,parseInt("444@@@@") === 444
和 444
不是 NaN
。
如果要检查整个字符串是否代表有效数字,use Number
instead:
if (isNaN(Number(input))) return "It's not a number."
或者,使用一元加号运算符强制类型转换为number
(相当于调用Number
):
if (isNaN(+input)) return "It's not a number."
编辑:实际上,isNaN
无论如何都会进行类型转换,所以你也可以直接调用它:
if (isNaN(input)) return "It's not a number."
【讨论】:
if (isNaN(input)) 返回“这不是一个数字。”这行得通。谢谢。以上是关于在打字稿中检查 NAN [重复]的主要内容,如果未能解决你的问题,请参考以下文章