验证C#中的输入字段

时间:2011-09-22 10:08:23

标签: c# .net string validation textfield

我有一个输入字段,应该只接受数字。

如何验证字符串? 这样可以吗:

string s = "12345";
double num;
bool isNum = double.TryParse(s, out num);

或.Net有解决方案吗?

6 个答案:

答案 0 :(得分:3)

单一行答案。做的工作。

string s = "1234";
if (s.ToCharArray().All(x => Char.IsDigit(x)))
{
    console.writeline("its numeric");
}
else
{
    console.writeline("NOT numeric");
}

答案 1 :(得分:2)

你所做的一切看起来是正确的。

您还可以创建一个扩展方法,以便更轻松:

    public static bool IsNumeric(this object _obj)
    {
        if (_obj == null)
            return false;

        bool isNum;
        double retNum;
        isNum = Double.TryParse(Convert.ToString(_obj), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
        return isNum;
    }

那么你可以这样做:

s.IsNumeric()

答案 2 :(得分:1)

您的解决方案没问题,但您可以创建一个为您完成此任务的方法。请记住,由于文化原因,它可能对其他国家不起作用。如下所示呢?

public bool isNumeric(string val, System.Globalization.NumberStyles NumberStyle)
{
    Double result;
    return Double.TryParse(val,NumberStyle,
        System.Globalization.CultureInfo.CurrentCulture,out result);
}

答案 3 :(得分:1)

VB.NET具有IsNumeric函数,但你在C#中有这样做的方法。要在应用范围内使其可用,只需在string

上编写扩展方法即可
public static bool IsNumeric(this string input)
{
    if (string.IsNullOrWhitespace(input))
        return false;

    double result;
    return Double.TryParse(input, out result);
}

答案 4 :(得分:0)

您可以在ASP.NET中使用Regular Expression Validators来约束输入。

答案 5 :(得分:0)

为什么不尝试通过UI验证输入?我不知道你是否使用asp.net,如果是这样,RegularExpressionValidator通常是一个有效的解决方案。 (http://www.w3schools.com/aspnet/control_regularexpvalidator.asp)。希望这有帮助!