0

私は今この正規表現を使用しています、

Regex rg = new Regex(@"\d{1,16}\.?|\d{0,16}\.\d{1,3}");

テキストボックスに入力された小数値を検証します。それは正常に動作します。ただし、ユーザーは2.aや などの数値以外の文字と一緒に 10 進数値を入力できます2\

私は間違った部分がここにあると信じています\.?。使用?したので、アルファベット値を受け入れますか? 私は何かを試しまし\.[0-9]?たが、うまくいきません。

以下は、有効な値と無効な値です。

  • 1 -- 0 から 9 まで有効
  • 11 -- 有効
  • 11.1 --有効
  • 11.11 --有効
  • 11.1111 -- 小数点以下 4 桁まで有効
  • 1a -- 無効
  • 1\ -- 無効
  • 1.1a -- 無効
  • a -- 無効

SOに関する質問が重複している可能性があります。ただし、有効な正規表現トークンは実装によって異なります。そのため、ここで新しい質問をしました。どんな助けでも大歓迎です!

4

2 に答える 2

1

正規表現

^\d{1,16}(\.\d{1,4})?$

追加できるポイントのみかどうかを認識したい場合は、正常に動作します

^(\d{1,16})|(\d{1,16}\.{1}\d{0,4})|(\d{1,16}\.{1})$

他のものほどエレガントではありませんが、投稿したシナリオで機能します。

于 2013-11-01T04:43:22.547 に答える