web-dev-qa-db-de.com

überprüfen, ob die eingegebene Nummer eine Ziffer in jquery ist

Ich habe eine einfache textbox, in die Benutzer die Nummer ..__ eingeben.
Verfügt jQuery über eine isDigit-Funktion, mit der ich ein Warnfeld anzeigen kann, wenn Benutzer andere Zeichen als Ziffern eingeben?

Das Feld kann auch Dezimalpunkte haben. 

61
Omnipresent

Ich würde empfehlen, Regex zu verwenden:

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');
   ...
}

Oder mit einem einzelnen Regex gemäß dem Vorschlag von @Platinum Azure:

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

Vergessen Sie reguläre Ausdrücke. JavaScript hat dafür eine eingebaute Funktion: 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

Nenne es einfach so:

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

es gibt eine einfachere Möglichkeit, zu prüfen, ob eine Variable eine Ganzzahl ist. Sie können die Funktion $ .isNumeric () verwenden. z.B.

$.isNumeric( 10 );     // true

dies gibt true zurück, aber wenn Sie anstelle der 10 eine Zeichenfolge eingeben, erhalten Sie false.

Ich hoffe das funktioniert für dich. 

8
Yoweli Kachala

Das folgende Skript kann verwendet werden, um zu prüfen, ob der Wert eine gültige Ganzzahl ist oder nicht.

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

Mit jQuery validation plugin könnten Sie so etwas tun, vorausgesetzt, das Formular heißt form und der zu validierende Wert heißt nrInput.

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

Dies behandelt auch Dezimalwerte.

1
Lars Andren
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/

1
PodTech.io

Die Gültigkeitsprüfung fällt nicht in die Verantwortung von jQuery. Sie können dazu reines JavaScript verwenden. Zwei Möglichkeiten, die mir in den Sinn kommen, sind:

/^\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);
}

verwendungszweck

'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 ist eine Reihe von JavaScript-Funktionen, richtig? Sie können also die Unterstützung regulärer Ausdrücke von JavaScript verwenden, um die Zeichenfolge zu überprüfen. Sie können dies in einen jQuery-Callback stellen, wenn Sie möchten, da diese nur anonym deklarierte Funktionskörper annehmen und die Funktionen weiterhin JavaScript sind.

Link: http://www.regular-expressions.info/javascript.html

0
Platinum Azure