0から99.99までの小数を受け入れる既存の正規表現を変更したい
\d{0,2}(\.\d{1,2})?$
これを受け入れてほしい
100
100.0
100.00
受け入れるべきではありません
100.1
100.02
101
誰かが上記のREを変更するのを手伝ってもらえますか
0から99.99までの小数を受け入れる既存の正規表現を変更したい
\d{0,2}(\.\d{1,2})?$
これを受け入れてほしい
100
100.0
100.00
受け入れるべきではありません
100.1
100.02
101
誰かが上記のREを変更するのを手伝ってもらえますか
特別な場合として、次を使用して100のテストを追加するのが最善だと思います|
。
^(\d{0,2}(\.\d{1,2})?|100(\.00?)?)$
正規表現を使用してこれを行うための答えはすでにありますが、通常、これを境界条件との浮動小数点比較として処理する方が効率的です。たとえば、Rubyを使用します。
number = 99
number.to_f >= 0 and number.to_f <= 100
=> true
number = 100.01
number.to_f >= 0 and number.to_f <= 100
=> false
これらの例では、文字列と整数が適切に比較されるように変数がfloatとしてキャストされ、次にfloatが0と100の境界条件と比較されます。これは、すばやく、書き込みが簡単で、(最も重要なことですが)読み取りが簡単です。 。
あなたのマイレージは異なる場合があります。
00.00から99.99まで私のために働いた
/^(?=.*\d)\d{0,2}(?:\.\d{0,2})?$/
100(\.0{1,2})?$|\d{0,2}(\.\d{1,2})?$
(100(\.[0]{1,2})?|[0-9]{1,2}(\.[0-9]{1,2})?)
これはあなたに役立つと思います"^(100(.0 {0,2}?)?$ |([1-9] {0,1})([0-9] {1})((。[ 0-9] {0,2})|(\、[0-9] {0,2}))?)$ "
これは、0〜100、0.0〜100.0、0.00〜100.00、およびこれらすべてをコンマで一致させます。
^(0*(\d{1,2}(\.\d+)?)|\.\d+|100(\.0+$)?)$
これは、ほとんどのプログラミング言語で有効な小数を含む0〜100のすべての値に適用されます。
valid: 0, 0.2, .1, 0001.020, 9, 010, 100.0000
invalid: -1, 100.010, 1., ., empty