web-dev-qa-db-ja.com

入力された数値がjqueryの数字かどうかを確認する

ユーザーが番号を入力する簡単なtextboxがあります。
jQueryには、ユーザーが数字以外を入力した場合にアラートボックスを表示できるisDigit関数がありますか?

フィールドには小数点も含めることができます。

64
Omnipresent

正規表現を使用することをお勧めします。

var intRegex = /^\d+$/;
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;

var str = $('#myTextBox').val();
if(intRegex.test(str) || floatRegex.test(str)) {
   alert('I am a number');
   ...
}

または、@ Platinum Azureの提案に従って、単一の正規表現を使用します。

var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
var str = $('#myTextBox').val();
if(numberRegex.test(str)) {
   alert('I am a number');
   ...
}    
86
karim79

正規表現を忘れてください。 JavaScriptには、このための組み込み関数があります:isNaN()

isNaN(123)           // false
isNaN(-1.23)         // false
isNaN(5-2)           // false
isNaN(0)             // false
isNaN("100")         // false
isNaN("Hello")       // true
isNaN("2005/12/12")  // true

次のように呼び出すだけです:

if (isNaN( $("#whatever").val() )) {
    // It isn't a number
} else {
    // It is a number
}
71
Plutor

変数が整数かどうかを確認する簡単な方法があります。 $ .isNumeric()関数を使用できます。例えば.

$.isNumeric( 10 );     // true

これはtrueを返しますが、10の代わりに文字列を入力すると、falseになります。

これがお役に立てば幸いです。

9
Yoweli Kachala
var yourfield = $('fieldname').val();

if($.isNumeric(yourfield)) { 
        console.log('IM A NUMBER');
} else { 
        console.log('not a number');
}

JQUERY DOCS:

https://api.jquery.com/jQuery.isNumeric/

2
PodTech.io

次のスクリプトを使用して、値が有効な整数であるかどうかを確認できます。

  function myFunction() {
    var a = parseInt("10000000");
    if (!isNaN(a) && a <= 2147483647 && a >= -2147483647){
    alert("is integer"); 
    } else {
     alert("not integer"); 
    }
}
2
M Arif

JQueryの validation プラグインを使用すると、フォームがformと呼ばれ、検証する値が呼び出されると仮定して、このようなことができますnrInput

$("form").validate({
            errorElement: "div",
            errorClass: "error-highlight",
            onblur: true,
            onsubmit: true,
            focusInvalid: true,
            rules:{
                'nrInput': {
                    number: true,
                    required: true
                }
            });

これは小数値も処理します。

1
Lars Andren

値の検証はjQueryの責任ではありません。これには純粋なJavaScriptを使用できます。私の頭に浮かぶ2つの方法は次のとおりです。

/^\d+$/.match(value)
Number(value) == value
1
Ates Goral
String.prototype.isNumeric = function() {
    var s = this.replace(',', '.').replace(/\s+/g, '');
return s == 0 || (s/s);
}

使用法

'9.1'.isNumeric() -> 1
'0xabc'.isNumeric() -> 1
'10,1'.isNumeric() -> 1
'str'.isNumeric() -> NaN
1
k2fl
$(document).ready(function () {



    $("#cust_Zip").keypress(function (e) {
        //var z = document.createUserForm.cust_mobile1.value;
        //alert(z);
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {

            $("#errmsgzip").html("Digits Only.").show().fadeOut(3000);
            return false;
        }
    });
});
0
Sandip Singh

jQueryはJavaScript関数のセットですよね?したがって、JavaScriptの正規表現サポートを使用して文字列を検証できます。必要に応じて、これをjQueryコールバックに入れることもできます。これらは、匿名で宣言された関数本体を使用するだけで、関数はまだJavaScriptであるためです。

リンク: http://www.regular-expressions.info/javascript.html

0
Platinum Azure