C# 验证用户输入的电话号码时出现问题,Int为大c

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

项目概述:

我正在创建一个多表单应用程序,它由两个表单和一个父类组成。这两种形式都有一系列验证函数,如Isleter isNumber和isValidEmail。我的问题出现在使用isNumber函数时

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对我来说