web-dev-qa-db-fra.com

vérifier si le nombre entré est un chiffre dans jQuery

J'ai un simple textbox dans lequel les utilisateurs entrent le numéro .
Est-ce que jQuery a une fonction isDigit qui me permettra d’afficher un message d’alerte si les utilisateurs entrent autre chose que des chiffres?

Le champ peut aussi avoir des points décimaux. 

61
Omnipresent

Je suggérerais d'utiliser des expressions rationnelles:

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

Ou avec un regex unique selon la suggestion de @Platinum Azure:

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

Oubliez les expressions régulières. JavaScript a une fonction intégrée pour cela: 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

Appelez-le comme ceci:

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

il existe un moyen plus simple de vérifier si une variable est un entier. vous pouvez utiliser la fonction $ .isNumeric (). par exemple.

$.isNumeric( 10 );     // true

cela retournera true mais si vous mettez une chaîne à la place du 10, vous obtiendrez false.

J'espère que cela fonctionne pour vous. 

8
Yoweli Kachala

Le script suivant peut être utilisé pour vérifier si la valeur est un entier valide ou non.

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

Avec jQuery's validation plugin, vous pouvez faire quelque chose comme ceci, en supposant que le formulaire s'appelle form et que la valeur à valider s'appelle nrInput.

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

Cela gère également les valeurs décimales.

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

La validation des valeurs ne serait pas une responsabilité de jQuery. Vous pouvez utiliser du JavaScript pur pour cela. Deux façons qui me viennent à l’esprit sont:

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

usage

'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 est un ensemble de fonctions JavaScript, non? Vous pouvez donc utiliser le support des expressions régulières de JavaScript pour valider la chaîne. Vous pouvez également mettre cela dans un callback jQuery, car ceux-ci prennent juste des corps de fonctions déclarés anonymement et les fonctions sont toujours JavaScript.

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

0
Platinum Azure