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.
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');
...
}
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
}
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.
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");
}
}
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.
var yourfield = $('fieldname').val();
if($.isNumeric(yourfield)) {
console.log('IM A NUMBER');
} else {
console.log('not a number');
}
JQUERY DOCS:
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
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
$(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;
}
});
});
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.