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

本文关键字:数字 包含 输入 是否 检查 | 更新日期: 2023-09-27 18:37:03

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

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

例如,

确定:118356737、111111111、123423141、

错误: 11a334356, 1.2.4.535, 1112234.222 等

谢谢

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

您可以使用任一正则表达式:

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

或 LINQ:

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

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

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

更新。根据评论,您需要使用正则表达式来确保正确处理所有情况。

使用正则表达式检查表达式是否正确

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 的详细信息,请参阅 msdn。TryParse().注意:双精度,浮点数,长型等也有其版本的TryParse()

添加此 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>

如果你想使用小数点,试试这个

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

单击此处查看详细说明