检查 String 是否是 TypeScript 中的有效数字
Check if String is a Valid Number in TypeScript
在 TypeScript 中检查字符串是否为有效数字:
- 检查字符串是否为空字符串或仅包含空格。
- 将字符串传递给
Number.isNaN()
方法。 - 如果
Number.isNaN
返回false
,则该字符串是一个有效数字。
索引.ts
function isNumber(str: string): boolean { if (typeof str !== 'string') { return false; } if (str.trim() === '') { return false; } return !Number.isNaN(Number(str)); } const str1 = '7'; const str2 = '7.3'; const str3 = ' '; const str4 = '123hello'; console.log(isNumber(str1)); // 👉️ true console.log(isNumber(str2)); // 👉️ true console.log(isNumber(str3)); // 👉️ false console.log(isNumber(str4)); // 👉️ false
我们创建了一个可重用的函数,它接受 astring
并返回一个boolean
字符串是否为有效数字的结果。
我们首先检查传递给函数的值是否没有 类型
string
,如果是这种情况,我们会false
立即返回。
When using TypeScript you can assume that the passed in value is going to be a
string
, but the check is just there for runtime safety.Then, we check if the provided value is an empty string or contains only
whitespace, in which case we also return false
.
Finally, we use the
Number.isNaN
method to check if the string converted to a number is NaN
(not a number).
We use the
logical NOT (!)
operator to negate the value returned from the Number.isNaN
method.
The Number.isNaN
method will return true
if the passed in value is NaN
(not a number) and its type is number
, otherwise it returns false
.
index.ts
console.log(Number.isNaN('hello')); // 👉️ false console.log(Number.isNaN(Number('hello'))); // 👉️ true
我们的函数检查传入的字符串是否为有效数字,而不检查传入的字符串是否NaN
在转换为数字时是否有效,因此我们必须否定对该Number.isNaN
方法的调用。
索引.ts
console.log(!Number.isNaN(Number('hello'))); // 👉️ false console.log(!Number.isNaN(Number('17.5'))); // 👉️ true
如果对该Number.isNaN()
方法的调用返回false
,则传入的字符串是一个有效数字,我们应该返回true
。