2016-04-13 7 views
0

私はテキストボックスを持っています。このテキストボックスは、5〜555の間の値のみを受け入れる必要があります。しかし、私はそれを達成することができません。Regex - 5〜555の値を受け入れる

私は以下試してみました:

/^[0-9]{5, 500}$/ 

は親切にこのケースで私を助けて。あなたが必要なもの

+0

なぜ正規表現ですか? 2つの算術比較が良いでしょう。 – Biffen

+0

どの言語を使用しますか? – TechTreeDev

+3

[正規表現の学習](http://stackoverflow.com/questions/4736/learning-regular-expressions)の可能な複製 – Biffen

答えて

3

^([5-9]|\d\d|[1-4]\d\d|5[0-4]\d|55[0-5])$ 

それは1桁、2桁、3桁の数字に対処するために、3種類の文を持っている|を使用しています。どのように動作する

Live Demo on Regex101

:(推奨しませんが)

^   # String starts with ... 
(
    [5-9]  # 1-Digit - Any digit 5 or over (5 to 9) 
    |   # OR 
    \d\d  # 2-Digit - Any 2 digits (since any 2-digit number will be within your range) 
    |   # OR 
    [1-4]\d\d # 3-Digit (below 500) - Any digit 1 to 5 (100 to 500), followed by any 2 digits 
    |   # OR 
    5[0-4]\d # 3-Digit (above 500, below 550) - 5, followed by any digit 0 to 4 (500 to 540), 
      # followed by any digit 
    |   # OR 
    55[0-5] # 3-Digits (550 or above) - 55, followed by any digit 0 to 5 (550 to 555) 
) 
$   # ... String ends with 
+2

'599'が受け入れられます..) – rock321987

+0

@ rock321987もう、ありがとう! ';)' – Druzion

+0

ありがとうございました! –

3

これは動作するはず

^(55[0-5]|5[0-4][0-9]|[1-4][0-9][0-9]|[1-9][0-9]|[5-9])$ 

Regex Demo

Proof of correctness

+1

プルーフ+1のために!良いアイデア! – Druzion

+0

@Druzionありがとう – rock321987

+0

@Akki Bhogteが助けてくれたら答えを受け入れることを検討する – rock321987

関連する問題