1

私はC#を使用しています。入力文字列が整数で、数字 0 ~ 9 のみで構成されているかどうかを確認するにはどうすればよいですか?

追加の要件は、常に合計 9 桁で構成されている必要があることです。それ以上でもそれ以下でもありません。

例えば、

OK: 118356737、111111111、123423141、

エラー: 11a334356、1.2.4.535、1112234.222 など

ありがとう

4

5 に答える 5

10

次のいずれかの正規表現を使用できます。

string input = "123456789";
bool isValid = Regex.IsMatch(input, @"^\d{9}$");

またはLINQ:

string input = "123456789";
bool isValid = input.Length == 9 && input.All(char.IsDigit);
于 2012-06-13T06:02:23.860 に答える
1

更新します。コメントによると、正規表現を使用して、すべてのケースが正しく処理されるようにする必要があります。

正規表現で正しい表現を確認する

string inputStr = "";
if(Regex.IsMatch(inputStr, @"^\d{9}$");) 
{
 //now check for int
 int result;
 if(int.TryParse(inputStr, out result) 
 {
   //it IS an integer 
   //the result integer is in the variable result.
 }
}

int.TryParse()の詳細については、msdn を参照してください。注: double、float、long などにもそれぞれのバージョンのTryParse().

于 2012-06-13T06:03:33.440 に答える
1

正規表現を使用して、入力文字列を検証できます。以下のパターンは 9 つの数字に一致し、最初の数字は 0 であってはなりません。

^[1-9]\d{8}$

于 2012-06-13T06:04:12.270 に答える
0

この ajax コントロールを追加します

<

asp:FilteredTextBoxExtender ID="FilteredTextBoxExtender5" runat="server" TargetControlID="yourtextbox"
                                    FilterType="Custom, Numbers" ValidChars="." />

または検証ツールボックスで正規表現を使用します

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1"
ErrorMessage="Please Enter Only Numbers" Style="z-index: 101; left: 424px; position: absolute;
top: 285px" ValidationExpression="^\d+$" ValidationGroup="check"></asp:RegularExpressionValidator>
于 2012-06-13T06:03:37.627 に答える
0

小数点を処理したい場合は、これを試してください

string input="12356";
bool valid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); // returns true;



string input="123.456";
bool isValid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); //returns true


string input="12%3.456";
bool isValid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); //returns false

詳細な説明については、ここをクリックしてください

于 2013-05-04T11:49:58.330 に答える