C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 164 を表示中)
■94695 / )  isNaNの使い方&全角数字の判定
□投稿者/ 初心者です。 (4回)-(2020/05/06(Wed) 13:19:48)

分類:[JavaScript] 

ASP.Net
Javascript
Jquery
web Form

お世話になっております。
昨日も質問させていただいたのですが、不明な点がありましたので質問致します。
宜しくお願い致します。

下記昨日のリンク先
http://bbs.wankuma.com/index.cgi?mode=al2&namber=94686

全角⇒半角に変換はできました。
そこで、数字のみ入力可能にしたかったのでisNaNを加えてみました。

//全角⇒半角に変換
var zen2han = function (str) {
    str = str.replace(/[0-9]/g, function (s) {
        return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
    })
    return str;
}

$(Function(){   
    var str = "";
    $("#Txt_Number").on("change", function () {
        //数字入力のみ
        if (isNaN == false) {
            str = $(this).val();
            $(this).val(zen2han(str));
        } else {
            //数字以外は空にする
            $(this).val('');
        }
    });
});

半角の数字は数字として判定されるのですが全角の数字は数字として判定されません。

下記リンクを参考に見ていたのですが、「isNaN() 関数を使う際の注意点」のところで
https://uxmilk.jp/46961

isNaN() 関数は、関数実行時に引数に対して Number() 関数と等価の型変換を行います。
そのため、引数が '123' のような文字列だった場合でも、数値の 123 に変換した後に判定を行うため、falseが返されます。
同様に、true や false のブーリアン値もそれぞれ 1 と 0 に変換された後に判定されるため、false が返されます。

と記述がありました。
これは全角の数字も数字と判定されるという意味ではないのでしょうか?
また、全角の数字も数字と判定させるにはどのようにすればよいのでしょうか?

お手数をおかけ致しますが、宜しくお願い致します。


返信 編集キー/


管理者用

- Child Tree -