2011-06-23 17 views
44

ifステートメント正規表現で使用できるのだろうかと思います。値が許容範囲内にあるかどうかを確認したい。はいの場合は別の何かをする。if条件の数字の範囲を確認

範囲は0.001-0.009です。私はこれを確認するために複数のifを使用する方法を知っていますが、私は正規表現で単一のifステートメントでそれをチェックする方法があるかどうかを知りたいと思います。

+6

'xが±10 yの範囲内であったかどうかを確認したい場合はそう

/** * 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; } 

&& '演算子? ... –

答えて

113

数値比較について質問しているので、正規表現は実際には問題とは関係ありません。あなたはどちらか、それを行うには、「複数の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 
} 
+2

はい、regexesはタスクには適していませんが、正規表現が必要でした。あなたのコードはタスクを解決しますが、彼の質問は解決しません。 – Leif

+49

これは人々を助けることを目的としたウェブサイトです。私はそれが悪い解決策を提供するのに役立つとは思わない。 – Pointy

+0

あなたのコーディングは良いですが、それはすべての問題に適合しません。犯行はありません。私はいつも問題に答えることによって解決策を判断します。それは私が一般的に人々が求めていることを知っていると仮定しているからです。チェックマークは、この質問者には当てはまりませんでした。 – Leif

12

(!本当に、あなたはいけない)、これは動作します:

/^0\.00([1-8]\d*|90*)$/ 

が動作するはずです、すなわち

任意の数続く
  • は1〜8が続く:(バックスラッシュ.文字のエスケープNB)、及び追加の数字
  • 又は9の任意の数、0.00続い
    • ^何も前に、
    • ゼロ
    • $
    • :他には何も
  • -5

    先のとがったが、右ですが、CoffeeScriptのを使用している場合は、構文の外観が続きますsのルビー

    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 
    
    1

    のようなものは、私は、私は私のシナリオのためによく働いた同様のものを書いたとんがりのbetween機能が好きです。私は携帯電話上で長押しを検出するためにそれを使用してい

    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); 
    
    関連する問題