0

テキストボックスへのユーザー入力を検証して、正確に 1 の精度の 10 進数にする必要がありますか? たとえば、以下はいくつかのケースです..

  • ユーザーが 1 を入力した場合、それは無効です

  • ユーザーが 0 を入力した場合は無効です

  • ユーザーが 1.0 を入力した場合、それは有効です

  • ユーザーが 1.1 を入力した場合、それは有効です

  • ユーザーが 1.11 を入力した場合、それは無効です

  • ユーザーが 100.1 を入力した場合、それは有効です

C#(.net 3.5)を使用してこれを達成するにはどうすればよいですか?

そのWPFテキストボックス。

ありがとう -マイク

4

3 に答える 3

2

これを実現する非正規表現の方法:

string input;
decimal deci;
if (input.Length >=3 && input[input.Length - 2].Equals('.') && Decimal.TryParse(input , out deci))
{
    // Success
}
else
{
    // Fail
}
于 2013-04-10T09:42:52.547 に答える
2

私にとって最も簡単な方法は、正規表現を使用することです。ユーザー入力を文字列として解釈することで、次のようなものと比較できます'[0-9]+\.[0-9]'

于 2013-04-10T09:36:02.383 に答える
0

はい、正規表現はあなたの状態をチェックする最良の方法です:

正確に NNNN.N (1234.5) を使用するには:

/^\d{4}\.\d$/

オプションの .N (1234 1234. 1234.5) の場合:

/^\d{4}(\.\d?)?$/

NNNN.N (1 .5 12.5 123. 1234 1234.5) のサイズまでの数値の場合:

/^(?=.*\d)\d{0,4}(\.\d?)?$/

また、最初に +/- を許可する場合は、^ を ^[-+]? に置き換えます。

于 2013-04-10T09:41:10.347 に答える