値が許容範囲内にあるかどうかを確認したい。はいの場合、何かをする。そうでなければ、何か他のもの。
範囲は0.001-0.009
です。複数のif
を使用してこれを確認する方法は知っていますが、単一のif
ステートメントで確認する方法があるかどうかを知りたいです。
あなたは数値比較について質問しているので、正規表現は本当に問題とは関係ありません。それを行うために「複数の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
must正規表現を使用する場合(そして、実際、そうすべきではありません!)、これは動作します:
/^0\.00([1-8]\d*|90*)$/
動作するはずです、つまり.
^
以前は何もありませんでしたが、0.00
(nb:.
文字のバックスラッシュエスケープ)$
:他に何も続かない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
が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);
コードで特定の範囲の数字を選択する場合は、&&
の代わりに||
演算子を使用してください。
if (x >= 4 && x <= 9) {
// do something
} else {
// do something else
}
// be sure not to do this
if (x >= 4 || x <= 9) {
// do something
} else {
// do something else
}