我想知道是否有可能在if
語句正則表達式中使用。我想檢查一個值是否在可接受的範圍內。如果是的話,做別的事情。檢查if條件中的數字範圍
範圍是0.001-0.009
。我知道如何使用多個if
來檢查這一點,但我想知道是否有任何方法用正則表達式在單個if
語句中檢查它。
我想知道是否有可能在if
語句正則表達式中使用。我想檢查一個值是否在可接受的範圍內。如果是的話,做別的事情。檢查if條件中的數字範圍
範圍是0.001-0.009
。我知道如何使用多個if
來檢查這一點,但我想知道是否有任何方法用正則表達式在單個if
語句中檢查它。
你在問一個關於數字比較的問題,所以正則表達式實際上與這個問題無關。你並不需要「多if
」語句來做到這一點,無論是:
if (x >= 0.001 && x <= 0.009) {
// something
}
你可以自己寫一個「之間()」函數:
function between(x, min, max) {
return x >= min && x <= max;
}
// ...
if (between(x, 0.001, 0.009)) {
// something
}
如果必須使用正則表達式(!真的,你不應該),這將工作:
/^0\.00([1-8]\d*|90*)$/
應該工作,即
^
之前什麼,0.00
(NB:反斜槓轉義用於.
字符),隨後加入1至8$
:其次是沒有別的尖是正確的,但如果你使用的CoffeeScript,語法看有點兒像紅寶石
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
我喜歡尖尖的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
是內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);
' &&'操作符? ... –