Answers:
您是在问有关数字比较的问题,因此正则表达式确实与该问题无关。您不需要“多个if
”语句来执行此操作,或者:
if (x >= 0.001 && x <= 0.009) {
// something
}
您可以为自己编写一个“ between()”函数:
function between(x, min, max) {
return x >= min && x <= max;
}
// ...
if (between(x, 0.001, 0.009)) {
// something
}
这是一个只有一个比较的选项。
// return true if in range, otherwise false
function inRange(x, min, max) {
return ((x-min)*(x-max) <= 0);
}
console.log(inRange(5, 1, 10)); // true
console.log(inRange(-5, 1, 10)); // false
console.log(inRange(20, 1, 10)); // false
如果您已经在使用lodash
,则可以使用以下inRange()
功能:https :
//lodash.com/docs/4.17.15#inRange
_.inRange(3, 2, 4);
// => true
_.inRange(4, 8);
// => true
_.inRange(4, 2);
// => false
_.inRange(2, 2);
// => false
_.inRange(1.2, 2);
// => true
_.inRange(5.2, 4);
// => false
_.inRange(-3, -2, -6);
// => true
我喜欢Pointy的between
函数,因此我写了一个类似的函数,该函数在我的场景中效果很好。
/**
* Checks if an integer is within ±x another integer.
* @param {int} op - The integer in question
* @param {int} target - The integer to compare to
* @param {int} range - the range ±
*/
function nearInt(op, target, range) {
return op < target + range && op > target - range;
}
因此,如果您想查看是否x
在±10的范围内y
:
var x = 100;
var y = 115;
nearInt(x,y,10) = false
我将其用于检测移动设备上的长按:
//make sure they haven't moved too much during long press.
if (!nearInt(Last.x,Start.x,5) || !nearInt(Last.y, Start.y,5)) clearTimeout(t);
&&
操作员?...