2011-07-28 23 views
0

テキストボックスで整数値を検証するためのJavaScript関数を作成しようとしました。しかし、私はそれを検証するための最良の方法を見つけることができませんでした。JavaScriptおよびJavaScriptを使用した整数および浮動小数点値のTextBoxの検証

(整数と浮動小数点値は使用できますが、アルファベットは使用できません)。

+2

あなたの質問は、主 'must'言葉が含まれていると私はどこでも'ここで私がこれまで試してみましたコード...だ '言葉を見ていません。あなたがこれまで試みたことを説明することなく教師/クライアント/マネージャーの要件を投稿することは、ここではあまり適切ではありません。あなたは、javascript開発者を雇う必要があります。 –

+0

このコメントは残念です。 – Rubyist

答えて

0

超現代的なブラウザでは(そして今日は、私が誤解されていない場合にはWebkitのみを意味します)、いわゆるhtml5入力があります。 type = "number"の入力もあります。

function hasInputNumber() { 
    var el = document.createElement("input"); 
    el.setAttribute("type", "number"); 
    var testval1 = "12121.121"; 
    var testval2= "1212.asas.a"; 
    el.value = testval1; 
    var test1 = el.value === testval1; 
    el.value = testval2; 
    var test2 = el.value != testval2; 
    return test1 && test2; 
} 

その他にも、あなたが入力タイプ=「数」を使用して、この機能がサポートされていない場合、それはJavaScriptを使用しての行動だ模倣しようとすることができます:あなたはこの方法でそれがサポートされているかどうかをチェックしたりすることはできません。多くの場合、このリスニングのキーボードイベントを行い、数値以外の入力を取り消そうとします。入力を貼り付けることができるので、実際には完全に正しく実装することは実際には非常に困難です。浮動小数点数の検証はそれほど簡単ではありません。ですから、提出する前に検証することをお勧めします。

検証自体は、parseIntparseFloatの2つの機能を使用できます。慎重に、いくつかの微妙な問題があります。 parseIntには常に2番目のparamとして10を渡し、jsはデータを解析しようとします。たとえば、これは "121212sdsds"はhtml5の入力[type = "number"]の数字とはみなされません。しかし、parseFloatを使って121212として解析されます。

私が言及すべき最後の事はNaNです。 NaNは特別な型の数値です(実際にはtypeof NaN == "number"以降の数値です)。 parseIntとparseFloatの両方は、入力の解析に失敗するとNaNを返します。 NaN!= Nanから、何かをチェックする正しい方法はNaN関数isNaNを呼び出すことです。

私はそれは私が、私は完全に質問を理解している場合わからない私はJSで数検証について伝えることができ、すべての:)

1

だと思います。テキストボックスに入力された整数だけがあることを確認していますか?もしそうなら、私はreg式を使ってテキストボックスをチェックします。以下のようなもの:

function isNum(elem, msg){ 
var numericExpression = /^[0-9]+$/; 
if(elem.value.match(numericExpression)){ 
    return true; 
} 
    else{ 
    alert(msg); 
    elem.focus(); 
    return false; 
} 

}

関連する問題