1. ホーム
  2. タイプスクリプト

[解決済み】Typescriptで、文字列がNumericであるかどうかを確認する方法

2022-04-04 03:29:13

質問

Typescriptでは、isNaNは数値しか受け付けないというエラーが表示されます。

isNaN('9BX46B6A')

であり、これはfalseを返すので parseFloat('9BX46B6A') と評価されます。 9

isNaN(parseFloat('9BX46B6A'))

Visual Studioでエラーが表示されたままでも実行できますが、正しい方法で実行したいです。

現在、私はこのように修正した関数を書いています。

static isNaNModified = (inputStr: string) => {
    var numericRepr = parseFloat(inputStr);
    return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length;
}

解決方法は?

文字列を数値に変換する方法は Number ではなく parseFloat .

Number('1234') // 1234
Number('9BX9') // NaN

また、省略記法が好きな人は単項のプラス演算子を使うことができます。

+'1234' // 1234
+'9BX9' // NaN

NaNに対するチェックを行う場合は注意が必要です(演算子 ===!== では期待通りに動作しません。 NaN ). 使用してください。

 isNaN(+maybeNumber) // returns true if NaN, otherwise false