0

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

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

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

不确定我是否正确?这是我的尝试

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

2 回答 2

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.
    }
});
于 2012-08-24T11:54:30.330 回答
0

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

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

匹配 1 到 20 之间的整数(含)

于 2012-08-24T11:55:28.963 回答