JSのisNaN
先日久々にJavaScriptを書いたのですが、意外なことで少しハマってしまいました。
数値チェック用に、isNaNというビルトイン関数があったので、何の気もなく使ってみました。
NaNはnot a numberの略で、つまり数値以外の場合にtrueになる関数(のはず)でした。
ところが、出来上がったものの処理がイレギュラーなので、原因を詳しく調査していたところ・・・。
isNaNは半角スペースもfalse(数値扱い)になるらしい(汗)。
(ちなみに空文字も同様だそうです。)
ググって見ればこれ、結構ポピュラーな仕様?のようですが、なぜスペースも数値扱いなのか、実装を見てみたい気もします・・・。
おとなしく正規表現で書いて解決しました(^^;)。
数値チェック用に、isNaNというビルトイン関数があったので、何の気もなく使ってみました。
NaNはnot a numberの略で、つまり数値以外の場合にtrueになる関数(のはず)でした。
ところが、出来上がったものの処理がイレギュラーなので、原因を詳しく調査していたところ・・・。
isNaNは半角スペースもfalse(数値扱い)になるらしい(汗)。
(ちなみに空文字も同様だそうです。)
ググって見ればこれ、結構ポピュラーな仕様?のようですが、なぜスペースも数値扱いなのか、実装を見てみたい気もします・・・。
おとなしく正規表現で書いて解決しました(^^;)。
コメント
No title
Limit Point Softwareというところに20ドル寄付しているのですが、ライセンスキーが届きません。( T_T)\(^-^ )
いったい、アメリカはどうなっているのでしょう?
いったい、アメリカはどうなっているのでしょう?
No title
24時間以上たってもライセンスキーが届きません。
PayPalに苦情を申し立てました。
PayPalに苦情を申し立てました。
Re: No title
>Mooさん
JSは不思議な挙動をするビルトイン関数が多いですね。
parseInt('12345abc')とかすると、12345が返ってきたりするので、
うっかりisNaN(parseInt(input))とかすると、
スカスカになったりします(笑^^;)
こういう点ではDelphiはかなりしっかり出来ていますよね。
そういえば私はC#はまだ縁がないなあ・・・。
>日本語化さん
それは心配ですね・・・。
ライセンスキーはメールで届くのですか??
その場合、念のためですが、スパムフィルタに食われていないかは
もうチェックしておきました??
(迷惑メールフォルダとかそういうフォルダがあればその中身とかです)
英語だけのメールの場合、スパムフィルタが間違って食ってしまう可能性が多いようです。
あと、ライセンスキーがEXEの場合、アンチウイルスソフトが食う場合もあるようです。
これらを調べて、なおかつもう少し待っても来てなかったら、開発元に確認した方が良いでしょうね。
ともかく無事解決されることを願っています!
JSは不思議な挙動をするビルトイン関数が多いですね。
parseInt('12345abc')とかすると、12345が返ってきたりするので、
うっかりisNaN(parseInt(input))とかすると、
スカスカになったりします(笑^^;)
こういう点ではDelphiはかなりしっかり出来ていますよね。
そういえば私はC#はまだ縁がないなあ・・・。
>日本語化さん
それは心配ですね・・・。
ライセンスキーはメールで届くのですか??
その場合、念のためですが、スパムフィルタに食われていないかは
もうチェックしておきました??
(迷惑メールフォルダとかそういうフォルダがあればその中身とかです)
英語だけのメールの場合、スパムフィルタが間違って食ってしまう可能性が多いようです。
あと、ライセンスキーがEXEの場合、アンチウイルスソフトが食う場合もあるようです。
これらを調べて、なおかつもう少し待っても来てなかったら、開発元に確認した方が良いでしょうね。
ともかく無事解決されることを願っています!
コメントの投稿
トラックバック
| ホーム |
最近C#で描き始めたけど、まじめに調べずに適当に関数を使って痛い目を見る・・・これからやりそうです。
なんだかんだ言っても新しい言語は面倒ですね~