我希望能够测试一个值是否在数字范围内。这是我的jQuery代码...如果值在两个数字之间
if ((year < 2099) && (year > 1990)){
return 'good stuff';
}
在jQuery中有更简单的方法吗?例如,有没有这样的事情......
if (1990 < year < 2099){
return 'good stuff';
}
我希望能够测试一个值是否在数字范围内。这是我的jQuery代码...如果值在两个数字之间
if ((year < 2099) && (year > 1990)){
return 'good stuff';
}
在jQuery中有更简单的方法吗?例如,有没有这样的事情......
if (1990 < year < 2099){
return 'good stuff';
}
在许多语言中,第二种方式将从左评估正确地对待你想要的东西。
例如,在C中,1990 < year
将评估为0或1,其然后变为1 < 2099
,当然这总是如此。
JavaScript是一种非常类似于C:1990 < year
返回true
或false
,并且这些布尔表达式似乎分别进行数值比较等于0和1。
但在C#中,它甚至不会编译,给你错误:
error CS0019: Operator '<' cannot be applied to operands of type 'bool' and 'int'
你从红宝石类似的错误,而哈斯克尔告诉你,你不能在同一缀表达式中使用<
两次。
关闭我的头顶,Python的是,我敢肯定的唯一语言处理设置“之间”那样:
>>> year = 5
>>> 1990 < year < 2099
False
>>> year = 2000
>>> 1990 < year < 2099
True
的底线是,第一种方式(x < y && y < z)
永远是你最安全的赌注。
如果你问的语言有此功能,Python做:
if (1990 < year < 2099):
return 'good stuff'
如果你不喜欢的布尔运算符,你总是可以使用嵌套的if语句:
if (1990 < year)
{
if(year < 2099)
return 'good stuff';
}
你可以做你自己的方法:
// jquery
$(function() {
var myNumber = 100;
try {
if (myNumber.isBetween(50, 150))
alert(myNumber + " is between 50 and 100.");
else
alert(myNumber + " is not between 50 and 100.");
} catch (e) {
alert(e.message());
}
});
// js prototype
if (typeof(Number.prototype.isBetween) === "undefined") {
Number.prototype.isBetween = function(min, max, notBoundaries) {
var between = false;
if (notBoundaries) {
if ((this < max) && (this > min)) between = true;
alert('notBoundaries');
} else {
if ((this <= max) && (this >= min)) between = true;
alert('Boundaries');
}
alert('here');
return between;
}
}
希望这会有所帮助。
最大
非常漂亮的代码。谢谢。 – 2016-06-16 04:27:07
从这里类似的解决方案:http://indisnip.wordpress.com/2010/08/26/quicktip-check-if-a-number-is-between-two-numbers/
$.fn.between = function(a,b){
return (a < b ? this[0] >= a && this[0] <= b : this[0] >= b && this[0] <= a);
}
-1。你已经将它添加到jQuery对象的原型中,当它被添加到'Number'的原型时,如你提供的链接所述。这不仅与OP的问题有关,而且这是一个无意义的事情。 – 2013-06-08 13:42:24
为什么这不涉及? OP要求提供jQuery解决方案,该链接描述了一个本地js解决方案。 jquery中的所有东西都是一个对象,因此是对象的原型。为什么它是荒谬的?同意,它要求引用对象的价值,而不是对象本身(我已经纠正),但我几乎认为这使得它无意义...工作示例:http://jsfiddle.net/xq4NE/ – 2013-06-10 15:01:40
嗯。在你修改之后,我会承认它不再是无稽之谈。这仍然不是我想要做的事情;没有理由说jQuery解决方案比你链接的更好,并且据我所知,在数字上调用jQuery(你需要做一些像$(4)。之间(3,5)'isn人们所做的事情(合理,因为jQuery对象的大多数方法都是针对DOM元素的);你不必要地从正常的jQuery模式中解脱出来,并迫使jQuery解决方案去做一些不需要的东西。 http://www.doxdesk.com/img/updates/20091116-so-large.gif – 2013-06-10 15:13:13
OK,我会在JavaScript的意思,对不起。我猜这两个语句是&&是唯一的方法? – Inigo 2010-12-10 12:15:20
好吧,这是清除了!谢谢 – Inigo 2010-12-10 12:23:07