检查if条件中的一系列数字
我不知道是否有可能在if语句中使用正则expression式。 我想检查一个值是否在可接受的范围内。 如果是的话做别的事情。 
 范围是0.001-0.009 。 我知道如何使用多个if检查这个,但我想知道是否有任何方法来检查它在一个单一的if语句与正则expression式。 
 你正在问一个关于数字比较的问题,所以正则expression式实际上与这个问题无关。 您不需要“多个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 } 
如果你必须使用正则expression式(真的,你不应该!)这将工作:
 /^0\.00([1-8]\d*|90*)$/ 
应该工作,即
-   ^之前没有什么,
-  后跟0.00(nb:。字符的反斜杠转义)
- 接着是1到8,以及任何数量的附加数字
- 或9,然后是任意数量的零
-   $:没有别的
 我喜欢Pointy betweenfunction,所以我写了一个类似的工作,我的情况很好。 
 /** * 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是否在y ±10之内: 
 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); 
Pointy是对的,但如果你使用的是CoffeeScript,语法看起来像ruby
 shipping = (x) -> switch when 0 <= x <= 1500 150 when 1501 <= x <= 4000 350 when 4001 <= x <= 8000 550 when 8001 <= x <= 12000 750 when 12001 <= x <= 20000 950 when 20001 <= x <= 40000 1500 else 3000