Pertanyaan Di Typescript, Bagaimana cara memeriksa apakah string adalah Numeric


Di Typescript, ini menunjukkan kesalahan yang mengatakan adalahNaN menerima hanya nilai numerik

isNaN('9BX46B6A')

dan ini mengembalikan salah karena parseFloat('9BX46B6A') mengevaluasi ke 9

isNaN(parseFloat('9BX46B6A'))

Saya masih dapat menjalankan dengan kesalahan yang muncul di Visual Studio, tetapi saya ingin melakukannya dengan cara yang benar.

Saat ini, saya telah menulis fungsi yang dimodifikasi ini -

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

76
2018-05-02 21:47


asal


Jawaban:


Cara mengubah string menjadi angka adalah dengan Numbertidak parseFloat.

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

Anda juga dapat menggunakan operator plus unary jika Anda suka singkatan:

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

Hati-hati saat mengecek NaN (operator === dan !== tidak bekerja seperti yang diharapkan NaN). Menggunakan:

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

146
2018-05-03 06:09



Saya memecahkannya dengan menggunakan isNumeric operator dari rxjs perpustakaan (mengimpor rxjs / util / isNumeric


31
2018-02-08 13:26



Saya telah membangun fungsi dari C Snover penjelasan.

function isNumber(value: string | number): boolean
{
   return !isNaN(Number(value.toString()));
}

2
2018-05-16 17:06



Apakah string dapat diuraikan sebagai angka merupakan masalah runtime. Typescript tidak mendukung kasus penggunaan ini karena fokus pada waktu kompilasi (bukan waktu proses) keselamatan.


-3
2018-05-02 23:36