C# 验证用户输入的电话号码时出现问题,Int为大c
项目概述: 我正在创建一个多表单应用程序,它由两个表单和一个父类组成。这两种形式都有一系列验证函数,如Isleter isNumber和isValidEmail。我的问题出现在使用isNumber函数时C# 验证用户输入的电话号码时出现问题,Int为大c,c#,.net,winforms,C#,.net,Winforms,项目概述: 我正在创建一个多表单应用程序,它由两个表单和一个父类组成。这两种形式都有一系列验证函数,如Isleter isNumber和isValidEmail。我的问题出现在使用isNumber函数时 public static bool numValidation(string strNum) { if (!string.IsNullOrWhiteSpace(strNum)) { int temp
public static bool numValidation(string strNum)
{
if (!string.IsNullOrWhiteSpace(strNum))
{
int temp;
if (int.TryParse(strNum, out temp))
{
Console.WriteLine("Phone Number is a valid input: " + temp);
return true;
}
else
{ Console.WriteLine(temp + "Is not Valid input!!"); }
}
return false;
}
乍一看,它工作正常,但一旦我试图打破它,我意识到,当一个实际的电话号码输入我得到一个错误,说号码太高。有没有办法绕过这个限制?由于我需要此验证的唯一原因是电话号码、传真等。我只需要此功能来接受非常大的号码,如电话号码,我建议您使用常规表达式来验证您案例中的输入
public static bool numValidation(string strNum)
{
Regex regex = new Regex(@"^[0-9]+$");
return (regex.IsMatch(strNum)) ;
}
实际上,不需要解析字符串而不使用该值
有关更多详细信息,请查看此答案-来自毛里西奥·格雷西亚·古铁雷斯的答案
我建议您使用常规表达式来验证 在您的案例中输入
public static bool numValidation(string strNum)
{
Regex regex = new Regex(@"^[0-9]+$");
return (regex.IsMatch(strNum)) ;
}
公共静态bool numValidationstring strNum{
Regex regex = new Regex(@"^[0-9]+$");
return (regex.IsMatch(strNum)) ; } Parsing a string and not using that value is not really needed.
有关更多详细信息,请查看此答案-仅适用于数字的正则表达式
您可以增强表达式以检查数字的长度:
在5到10位之间:
Regex regex = new Regex(@"^[\d]{5,10}+$");
Regex regex = new Regex(@"^[\d]{10}+$");
最多10位:
Regex regex = new Regex(@"^[\d]{5,10}+$");
Regex regex = new Regex(@"^[\d]{10}+$");
至少5位数字:
Regex regex = new Regex(@"^[\d]{5,}+$");
解析非int到int的内容与将int转换为字符串并检查其长度以查看数字是否大于99一样错误。干杯。我之前使用的方法与此类似,我将实现它并返回给您我的结果,+1对我来说