检查输入的数字是否是jquery中的数字

时间:2009-08-13 15:25:27

标签: javascript jquery validation

我有一个简单的textbox,其中用户输入数字。
如果用户输入除数字以外的内容,jQuery是否有isDigit函数可以显示警告框?

该字段也可以包含小数点。

10 个答案:

答案 0 :(得分:85)

我建议使用正则表达式:

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

答案 1 :(得分:71)

忘记正则表达式。 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
}

答案 2 :(得分:8)

有一种更简单的方法可以检查变量是否为整数。你可以使用$ .isNumeric()函数。 e.g。

$.isNumeric( 10 );     // true

这将返回true,但是如果你用一个字符串代替10,你将得到错误。

我希望这适合你。

答案 3 :(得分:2)

以下脚本可用于检查值是否为有效整数。

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

答案 4 :(得分:2)

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/

答案 5 :(得分:1)

值验证不是jQuery的责任。您可以使用纯JavaScript。我想到的两种方式是:

/^\d+$/.match(value)
Number(value) == value

答案 6 :(得分:1)

使用jQuery的validation插件,您可以执行类似的操作,假设表单名为 form ,而validate的值称为 nrInput

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

这也处理十进制值。

答案 7 :(得分:1)

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

答案 8 :(得分:0)

jQuery是一组JavaScript函数,对吗?因此,您可以使用JavaScript的正则表达式支持来验证字符串。如果你愿意的话,你可以将它放在一个jQuery回调中,因为那些只是采用匿名声明的函数体,而且函数仍然是JavaScript。

链接:http://www.regular-expressions.info/javascript.html

答案 9 :(得分:0)

$(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;
        }
    });
});