Saya perlu memeriksa apakah justPrices[i].substr(commapos+2,1)
.
Stringnya kira-kira seperti: "blabla, 120"
Dalam hal ini akan memeriksa apakah '0' adalah angka. Bagaimana ini bisa dilakukan?
javascript
lisovaccaro.dll
sumber
sumber
Jawaban:
Anda dapat menggunakan operator perbandingan untuk melihat apakah itu dalam kisaran karakter digit:
sumber
Anda dapat menggunakan
parseInt
dan memeriksaisNaN
atau jika Anda ingin bekerja secara langsung pada string Anda, Anda dapat menggunakan regexp seperti ini:
sumber
function is_numeric_char(c) { return /\d/.test(c); }
is_numeric_char("foo1bar") == true
.). jika Anda ingin memeriksa karakter numerik/^\d$/.test(c)
akan menjadi solusi yang lebih baik. tapi bagaimanapun, itu bukan pertanyaannya :)EDIT: Jawaban terbaru Blender adalah jawaban yang benar di sini jika Anda hanya memeriksa satu karakter (yaitu
!isNaN(parseInt(c, 10))
). Jawaban saya di bawah ini adalah solusi yang baik jika Anda ingin menguji seluruh string.Berikut adalah
isNumeric
implementasi jQuery (dalam JavaScript murni), yang bekerja dengan string penuh :Komentar untuk fungsi ini berbunyi:
Saya pikir kita bisa percaya bahwa orang-orang ini telah menghabiskan cukup banyak waktu untuk ini!
Sumber berkomentar di sini . Diskusi super geek di sini .
sumber
Saya bertanya-tanya mengapa tidak ada yang memposting solusi seperti:
dengan doa seperti:
sumber
Anda dapat menggunakan ini:
Di sini, saya membandingkannya dengan metode yang diterima: http://jsperf.com/isdigittest/5 . Saya tidak berharap banyak, jadi saya cukup terkejut, ketika saya menemukan bahwa metode yang diterima jauh lebih lambat.
Hal yang menarik adalah, meskipun metode yang diterima adalah input yang benar lebih cepat (mis. '5') dan lebih lambat untuk yang salah (mis. 'A'), metode saya justru sebaliknya (cepat untuk yang salah dan lebih lambat untuk yang benar).
Namun, dalam kasus terburuk, metode saya 2 kali lebih cepat daripada solusi yang diterima untuk masukan yang benar dan lebih dari 5 kali lebih cepat untuk masukan yang salah.
sumber
!!([!0, !0, !0, !0, !0, !0, !0, !0, !0, !0][n]);
Ini memiliki potensi WTF yang besar dan bekerja dengan cukup baik (gagal007
)."length"
(dan atribut lain yang ditemukan pada array) adalah digit: PSaya pikir sangat menyenangkan menemukan cara untuk menyelesaikan ini. Berikut ini beberapa.
(Semua fungsi di bawah ini menganggap argumen adalah satu karakter. Ubah ke
n[0]
untuk memaksakannya)Metode 1:
Metode 2:
Metode 3:
Metode 4:
Metode 5:
String uji:
sumber
true
untuk" "
.charCodeAt()
perbandingan - yang hampir 4x lebih cepat - jsperf.com/isdigit3Fungsi sederhana
sumber
Jika Anda menguji karakter tunggal, maka:
akan mengembalikan true atau false tergantung pada apakah c adalah digit atau bukan.
sumber
Saya menyarankan regex sederhana.
Jika Anda hanya mencari karakter terakhir dalam string:
Dan regex bahkan lebih sederhana jika Anda hanya memeriksa satu karakter sebagai masukan:
sumber
Solusi terpendek adalah:
Anda juga dapat menerapkan ini:
jika Anda ingin memeriksa lebih dari 1 karakter, Anda dapat menggunakan varian berikutnya
Ekspresi Reguler:
Perbandingan:
Periksa apakah bukan NaN
sumber
sumber
keluaran tanpa mode ketat:
keluaran dengan mode ketat:
sumber
Mencoba:
sumber
Ini sepertinya berhasil:
Pengikatan statis:
Pengikatan prototipe:
Ini akan memeriksa karakter tunggal, serta seluruh string untuk melihat apakah mereka numerik.
sumber
Sumber
sumber
Kode sumber
sumber
Anda dapat mencoba ini (berhasil dalam kasus saya)
Jika Anda ingin menguji apakah karakter pertama dari sebuah string adalah int:
Jika Anda ingin menguji apakah char adalah int:
sumber
Fungsi ini berfungsi untuk semua kasus uji yang dapat saya temukan. Ini juga lebih cepat dari:
sumber
Sejauh yang saya tahu, cara termudah adalah dengan mengalikannya dengan
1
:Perkalian dengan satu membuat angka dari string numerik apa pun (karena Anda hanya memiliki satu karakter, itu akan selalu berupa bilangan bulat dari 0 hingga 9) dan
NaN
untuk string lainnya.sumber
Mirip dengan salah satu jawaban di atas, saya dulu
Posting blog ini menjelaskan lebih lanjut tentang pemeriksaan ini jika sebuah string adalah numerik dalam Javascript | Ketikan & ES6
sumber
Solusi sederhana dengan memanfaatkan pemeriksaan tipe dinamis bahasa:
lihat kasus uji di bawah
Tampilkan cuplikan kode
sumber
Gunakan saja
isFinite
sumber