2012-02-17 7 views
1

テキストボックスからvalidate integer valuesにjavascript関数を作成しようとしました。 integer and floatの値しか受け入れられないように、それを検証する最良の方法は何ですか?浮動小数点数と整数値の検証のためのJavaScript

番号検証に必要なJavaスクリプト関数。

+1

http://stackoverflow.com/questions/3885817/how-to-check-if-a-number-is-float-or-integer –

+1

より良い:http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric – Lukas

+0

あなたが試した 'javascript関数'を表示.. – Vijay

答えて

1

JavaScriptには、isNaN(テキスト)関数が組み込まれています。テキストボックスのテキストをこの関数に渡すだけで、ブール値が得られます。

6
// remove whitespaces 
var input = input.replace(/\s+/g,""); 

// check if the input is a valid number 
if(isFinite(input) && input != ''){ 
    // do your thing 
} 

isFiniteは、一部の国ではカスタムであるように'20 .50 'や' 20,50 'などの値しか受け入れないことに注意してください。この種の柔軟性が必要な場合は、追加の文字列前処理を行う必要があります。そして、この解決策では、スペースは1000個の区切り文字(例えば、「100 000」)として許可されるだけである。

isFinite( '')がtrueを返すので、残念ながら空の文字列のチェックが必要です。 !あなたはまた(詳細な説明を参照してください:Validate decimal numbers in JavaScript - IsNumeric())ユーザーCMSからこの機能を使用することができます

function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 
0

VAR有効=ますisNaN(値); 例:

!isNaN('0'); // true 
!isNaN('34.56'); // true 
!isNaN('.34'); // true 
!isNaN('-34'); // true 
!isNaN('foo'); // false 
!isNaN('08'); // true 

!isNaN(''), !isNaN(' '), !isNaN('\n\t')、などがすべて満たされています!

空白テスト+ますisNaN FTW:JavaScriptで数値の検証のための私のために

var valid = !/^\s*$/.test(value) && !isNaN(value); 
1

ベスト史上ソリューション。

function isFloat(evt) { 

var charCode = (event.which) ? event.which : event.keyCode; 
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { 
    alert('Please enter only no or float value'); 
    return false; 
} 
else { 
    //if dot sign entered more than once then don't allow to enter dot sign again. 46 is the code for dot sign 
    var parts = evt.srcElement.value.split('.'); 
    if (parts.length > 1 && charCode == 46) 
     { 
     return false; 
     } 


    return true; 

} 

}

だけコピーして過去のJavaScriptコードと、このようなあなたのTextBoxれるonkeypressに適用されます。..

<input type="text" onkeypress="return isFloat(event)" /> 
0

onload =function(){ 
 
    var ele = document.querySelectorAll('.number-only')[0]; 
 
    ele.onkeypress = function(e) { 
 
    if(isNaN(this.value+""+String.fromCharCode(e.charCode))) 
 
     return false; 
 
    } 
 
    ele.onpaste = function(e){ 
 
    e.preventDefault(); 
 
    } 
 
}
<input class="number-only" type=text />

+0

は負の値では機能しません – spy

関連する問題