Проверить поле ввода в C # - PullRequest
       1

Проверить поле ввода в C #

2 голосов
/ 22 сентября 2011

У меня есть поле ввода, которое должно принимать только цифры.

Как проверить строку?Будет ли это нормально:

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

Или .Net имеет решение для этого?

Ответы [ 6 ]

3 голосов
/ 22 сентября 2011

Однострочный ответ.Выполняет работу.

string s = "1234";
if (s.ToCharArray().All(x => Char.IsDigit(x)))
{
    console.writeline("its numeric");
}
else
{
    console.writeline("NOT numeric");
}
2 голосов
/ 22 сентября 2011

То, что вы сделали, выглядит правильно.

Вы также можете создать метод расширения, чтобы упростить его:

    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()
1 голос
/ 22 сентября 2011

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);
}
1 голос
/ 22 сентября 2011

ваше решение в порядке, но вы можете создать метод, который сделает эту работу за вас.Имейте в виду, что это может не сработать для других стран из-за культуры.Как насчет чего-то подобного ниже?

public bool isNumeric(string val, System.Globalization.NumberStyles NumberStyle)
{
    Double result;
    return Double.TryParse(val,NumberStyle,
        System.Globalization.CultureInfo.CurrentCulture,out result);
}
0 голосов
/ 22 сентября 2011

Почему бы вам не попробовать проверить ввод через пользовательский интерфейс?Я не знаю, используете ли вы asp.net, если да, то RegularExpressionValidator обычно является правильным решением для этого.(http://www.w3schools.com/aspnet/control_regularexpvalidator.asp). Надеюсь, это поможет!

0 голосов
/ 22 сентября 2011

Вы можете использовать Валидаторы регулярных выражений в ASP.NET для ограничения ввода.

...