检查输入是否为数字且仅包含数字0-9

时间:2012-06-13 05:59:56

标签: c# .net

我正在使用C#。 如何验证输入字符串是否为整数且仅由数字0-9组成?

另一个要求是它应该总是由9位数字组成;不多也不少。

如,

  

确定:118356737,1111111111,123423141,

     

错误:11a334356,   1.2.4.535,   1112234.222等

感谢

5 个答案:

答案 0 :(得分:10)

您可以使用正则表达式:

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

或LINQ:

string input = "123456789";
bool isValid = input.Length == 9 && input.All(char.IsDigit);

答案 1 :(得分: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()的版本。

答案 2 :(得分:1)

您可以使用正则表达式来验证输入字符串。 下面的模式匹配9个数字,第一个数字不应该是0。

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

答案 3 :(得分:0)

添加此ajax控件

&LT;

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>

答案 4 :(得分: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

Click here For Detailed Description