数値 (Decimal may alow) テキストボックスで単一のゼロを制限するにはどうすればよいですか? Textbox は任意の数値を受け入れることができますが、値としてゼロまたは "0.##" のみを受け入れるべきではありません。
例: "900.55"、"200.00" は有効ですが、"0" および "0.105" は無効です。
試してみ^[1-9]\d\.?\d[0-9]*
ましたが、「0」と「0.##」を受け入れます
あなたはほとんどそこにいます。
^[1-9][0-9]*(\.[0-9]+)?$
入力は
ノート:
3.
ます。それが望ましくない場合は、最後+
のを. に置き換え*
ます。\d
の代わりに使用できます[0-9]
。私は後者を使用して一貫性を[1-9]
保ち、物事をシンプルに保ちました。これを行う方が簡単だと思います:
float result;
return float.TryParse(textBox1.Text, out result) && result < 1;
あなたは近いと思いますが、小数とそれに続く数字をグループに含めて、そのグループ全体を次のように一度だけ許可する方が簡単かもしれません:
^[1-9][0-9]*(\.\d*)?
また、こちらは正規表現のテストに役立つサイトです。
代わりに、否定先読みを使用してそれを書くこともできます:
^(?!0\b)\d+(\.\d*)?$
0
これには、 022 のような先行番号を持つ番号を受け入れるという追加のボーナスがあります。
テキストボックスが有効な数値のみを受け入れ、アサートしたいのはそれが> 0であることだけである場合、本当に必要なのは
^[1-9]
または、末尾のプレフィックス ゼロが許可されている場合
^0*[1-9]