0

数値 (Decimal may alow) テキストボックスで単一のゼロを制限するにはどうすればよいですか? Textbox は任意の数値を受け入れることができますが、値としてゼロまたは "0.##" のみを受け入れるべきではありません。

例: "900.55"、"200.00" は有効ですが、"0" および "0.105" は無効です。

試してみ^[1-9]\d\.?\d[0-9]*ましたが、「0」と「0.##」を受け入れます

4

6 に答える 6

6

あなたはほとんどそこにいます。

^[1-9][0-9]*(\.[0-9]+)?$

入力は

  • 1から9までの数字で始める
  • 0 ~ 9 の任意のシーケンスが続く
  • およびオプション:
    • ドットの後に 1 つ以上の 0 ~ 9 が続きます。

ノート:

  1. これも禁止し3.ます。それが望ましくない場合は、最後+のを. に置き換え*ます。
  2. \dの代わりに使用できます[0-9]。私は後者を使用して一貫性を[1-9]保ち、物事をシンプルに保ちました。
于 2013-04-24T13:22:52.357 に答える
1

これを行う方が簡単だと思います:

float result;
return float.TryParse(textBox1.Text, out result) && result < 1;
于 2013-04-24T13:37:48.030 に答える
1

あなたは近いと思いますが、小数とそれに続く数字をグループに含めて、そのグループ全体を次のように一度だけ許可する方が簡単かもしれません:

^[1-9][0-9]*(\.\d*)?

また、こちらは正規表現のテストに役立つサイトです。

于 2013-04-24T13:30:44.773 に答える
0

代わりに、否定先読みを使用してそれを書くこともできます:

^(?!0\b)\d+(\.\d*)?$

0これには、 022 のような先行番号を持つ番号を受け入れるという追加のボーナスがあります。

于 2013-04-24T14:31:22.263 に答える
0

テキストボックスが有効な数値のみを受け入れ、アサートしたいのはそれが> 0であることだけである場合、本当に必要なのは

^[1-9]

または、末尾のプレフィックス ゼロが許可されている場合

^0*[1-9]
于 2013-04-24T14:05:10.163 に答える