如何使用jQuery仅允许/测试文本字段中的数字?

时间:2012-08-24 11:46:51

标签: jquery

是否有正则表达式或解决方案测试输入字段是否具有以下条件(例如)

我想测试用户输入只有数字无十进制,大于0且不大于20。基本上我正在为客户端脚本编写一些东西,例如数量添加到购物车中,我想确保(在客户端)他可以放置1到20的任何值,所以0不被接受..数字,1.3等。 ..

是否有插件或正则表达式在客户端为我测试?

不确定如果我做对了吗?这是我的尝试

    var re = /^\d+$/;
    var str = $(this).val();
    if (re.test(str) && str > 0 && str <= 20){
        status = 'success';         
    } else {
        status = 'error';
    }

2 个答案:

答案 0 :(得分:1)

这将有效:

/^([1-9]|[1][0-9]|[2][0])$/

它将匹配1-20。

代码示例

$(function() {
    "use strict";
    var limit = /^([1-9]|[1][0-9]|[2][0])$/,
        value = "19";

    if(limit.test(value)) {
        // Will in this example go here.
    }
    else {
        // Do something when it fails.
    }
});

答案 1 :(得分:0)

在客户端尝试此正则表达式,

^1?[1-9]$|^[1-2]0$

匹配1到20之间的整数