我正在使用 C#。如何验证输入字符串是否为整数并且仅由数字 0-9 组成?
一个额外的要求是它应该总是由精确的 9 位数字组成;不多不少。
例如,
确定:118356737、111111111、123423141、
错误:11a334356、1.2.4.535、1112234.222 等
谢谢
您可以使用任一正则表达式:
string input = "123456789";
bool isValid = Regex.IsMatch(input, @"^\d{9}$");
或 LINQ:
string input = "123456789";
bool isValid = input.Length == 9 && input.All(char.IsDigit);
更新。根据评论,您需要使用正则表达式来确保正确处理所有案例。
使用正则表达式检查正确的表达式
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()
.
您可以使用正则表达式来验证输入字符串。下面的模式匹配 9 个数字,第一个数字不应该是 0。
^[1-9]\d{8}$
添加这个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