检查数字是否在范围内

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

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"); } } 

但不知怎的,它不起作用..警报永远不会被触发

感谢您的帮助和快速解答

扩展@ 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"); } } 

不是结束括号,而是缺少括号:

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

应该:

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

要么

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

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"); } } 

问题是类型转换对象时间不是Number类型。

希望能帮助到你 .....

这个问题已被问到: 这里

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

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

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