4

これらのルールを満たす正規表現が必要です。

  1. 小数点の最大数は3ですが、小数点のない数(12など)も受け入れる必要があります
  2. 値は少なくとも0でなければなりません
  3. 値は99999999999.999以下である必要があります
  4. 小数点はDOTです(例:2.5ではなく2.5)

有効な番号のサンプル:

0
2
0.4
78784764.23
45.232

無効な番号のサンプル:

-2
123456789522144
84.2564

ここ(http://forums.asp.net/t/1642501.aspx)で例を見つけ、それを少し変更して、最小値を0、最大値を99999999999.999にし、DOTのみを受け入れるようにしました。小数点。これが私の変更された正規表現です:

^\-?(([0-9]\d?|0\d{1,2})((\.)\d{0,2})?|99999999999.999((\.)0{1,2})?)$

しかし、私はまだ小数点以下3桁に問題があり、かなり不安定です。正規表現に関しては基本的に文盲なので、誰かがこれについて私を助けることができますか?

ありがとう。

編集済み: ASP正規表現バリデーターを使用しています

4

1 に答える 1

19

これはそれほど難しいことではありません:

^[0-9]{1,11}(?:\.[0-9]{1,3})?$

説明:

^            # Start of string
[0-9]{1,11}  # Match 1-11 digits (i. e. 0-99999999999)
(?:          # Try to match...
 \.          # a decimal point
 [0-9]{1,3}  # followed by one to three digits (i. e. 0-999)
)?           # ...optionally
$            # End of string
于 2012-10-03T05:15:26.677 に答える