JavaScript で値が数値か判定しよう
元々 JavaScript には isNaN という「渡した値が数値でなかった場合に true を返す」という関数があるんですが、結果が微妙に僕の期待するものと違うので、自分用の関数を書いてみました。
ちなみにどの辺が期待通りでないかというと、null や""(空の文字列)を数値として判定しちゃうんです。どうやら自動型変換に関連した言語仕様のためみたいなので、仕方ないと言えば仕方ないんですが・・・。
そんなわけで、以下のようなソースになりました。isNaN とは逆で「値が数値だと true を返す」という仕様です。関数名通りですね。
もっとも、狙いが「符号無し整数かどうか?」とか「小数かどうか?」みたいなピンポイントな場合は、最初から正規表現を使った方が良さそうです。例えば・・・
みたいな感じかな。
参照リンク
・javascriptでNaNを判定してみる [ピクスログ]
・[鏡] C/C++ プログラマのための JavaScript 入門: 型変換 -- 戯れ言++