检查数字是否在范围内

时间:2015-09-02 13:28:31

标签: javascript jquery

我正在检查来自输入字段的号码是否在范围内

function timeCheck(){

        var time = $.trim($('#enterTime').value());
            Number.prototype.between = function(min,max){
                return this > min && this < max;
            };
            if ((time).between(1,9)){
                    alert("test");
                }
            }

但不知何故它不起作用..警报永远不会被触发

感谢您的帮助和快速回答

4 个答案:

答案 0 :(得分:2)

不是右括号,但缺少括号:

if((time).between(1,9){

应该是:

if ((time).between(1,9)){

if (time.between(1,9)){

答案 1 :(得分:1)

FIDDLE 请尝试以下代码

function timeCheck(){
    var time = parseInt($.trim($('#enterTime').val()),10);
        Number.prototype.between = function(min,max){
            var num = parseInt(this,10);

            return num >= min && num <= max; 
        }
            if((time).between(1,9)){
                alert("test");
            }
}

问题在于类型转换对象时间不是数字类型。

希望它有所帮助.....

答案 2 :(得分:1)

扩展@ Daniel的答案,还有另外两个错误:首先,$('#enterTime').value()不是有效的jQuery函数,应该是$('#enterTime').val()。其次,您需要将值转换为Number类型。否则,您将尝试访问不存在的字符串的between属性。最终的代码是:

function timeCheck(){
    var time = new Number($.trim($('#enterTime').val()));
    Number.prototype.between = function(min,max){
        return this > min && this < max;
    };
    if(time.between(1,9)){
        alert("test");
    }
}

答案 3 :(得分:0)

此问题已被提出:here

尝试我建议的功能(在上面提到的PHP文章中),它对增加或减少范围有效,而不仅限于整数:

function between(n, a, b)
{
    var chk= false;
   if ((a==n)&&(b==n)){
      chk = true;
    }else{
      chk = (n-a)*(n-b)<0;
    }
    return chk;
}

如果n在a和b之间,则函数为TR