Ini*_*igo 12 jquery if-statement date-range
我希望能够测试一个值是否在数字范围内.这是我的jQuery代码......
if ((year < 2099) && (year > 1990)){
return 'good stuff';
}
Run Code Online (Sandbox Code Playgroud)
在jQuery中有更简单的方法吗?例如,有这样的东西......
if (1990 < year < 2099){
return 'good stuff';
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*off 22
在许多语言中,第二种方式将根据您的需要从左到右进行错误评估.
例如,在C中,1990 < year
将评估为0或1,然后变为0 1 < 2099
,当然,这总是正确的.
Javascript与C:1990 < year
return true
或者非常相似false
,并且这些布尔表达式似乎在数值上分别等于0和1.
但在C#中,它甚至不会编译,给你错误:
错误CS0019:运算符'<'不能应用于'bool'和'int'类型的操作数
你从Ruby得到了类似的错误,而Haskell告诉你,你不能<
在同一个中缀表达式中使用两次.
在我的脑海中,Python是我唯一能够处理"之间"设置的语言:
>>> year = 5
>>> 1990 < year < 2099
False
>>> year = 2000
>>> 1990 < year < 2099
True
Run Code Online (Sandbox Code Playgroud)
最重要的是,第一种方式(x < y && y < z)
始终是您最安全的选择.
小智 9
你可以制作自己的方法:
// 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;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
马克斯