Проверка строк запроса в ASP.NET

Есть ли библиотека, которую я могу использовать в своем текущем приложении ASP.NET для проверки строк запросов?

Изменить ~ Использование Regex для поиска шаблонов, таких как только строки, только числовые, строки с длиной x,... и т.д.

Спасибо


person Saif Khan    schedule 30.10.2008    source источник


Ответы (4)


Не знаю о библиотеке, но вы можете проверить, существует ли строка запроса:

if (!String.IsNullOrEmpty(Request.Querystring["foo"]))
{
   // check further
}
else
{
   // not there, do something else
}

Если вы хотите использовать регулярные выражения для дальнейшей проверки, вы можете создать класс, который принимает строку и возвращает логическое значение.

public static Boolean IsValid(String s)
{
    const String sRegEx = @"regex here";

    Regex oRegEx = new Regex(sRegEx , RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
    MatchCollection oMatches = oRegEx.Matches(s);

    return (oMatches.Count > 0) ? true : false;
}

Это хорошая бесплатная программа, помогающая создавать регулярные выражения: Expresso.

person craigmoliver    schedule 30.10.2008
comment
что я ищу, это проверка с использованием регулярного выражения - person Saif Khan; 30.10.2008
comment
Я уже делал что-то подобное, не хотел заново изобретать велосипед, если что-то уже было. Ваш, однако, уменьшил количество моих утверждений if...else. - person Saif Khan; 30.10.2008

Лучшим подходом для такого рода вещей, вероятно, будет использование регулярных выражений для проверки любого условия, которое вы ищете.

В реальном сценарии было бы хорошо отделить проверку от презентации, но только для примера:

  if (!string.IsNullOrEmpty(Request.QueryString["Variable"]))
    {
        string s = Request.QueryString["Variable"];

        Regex regularExpression = new Regex("Put your regex here");

        if (regularExpression.IsMatch(s))
        {
            // Do what you want.
        }
    }
person denny    schedule 30.10.2008

Вы хотите спросить о разбиении строки запроса на части? ASP.Net уже делает это за вас. Вы можете получить доступ к отдельным параметрам через коллекцию Request.QueryString.

Для строки запроса: ?fruit=apple&socks=white

Request.QueryString["fruit"] даст вам "яблоко", а Request.QueryString["socks"] даст вам "белый".

person Josh Hinman    schedule 30.10.2008

Если вы говорите о проверке строки запроса для запросов по мере их поступления, .NET Framework уже делает это. У страницы есть свойство с именем ValidateRequest, которое по умолчанию имеет значение true, и что-либо недопустимое в строке запроса вызовет ошибку (при первом доступе к строке запроса в вашем коде) без необходимости что-либо делать.

Если вы говорите о проверке строк запроса, которые у вас есть как данные или что-то в этом роде, тогда это Статья MSDN Mag может вам помочь.

РЕДАКТИРОВАТЬ: я вижу, вы больше спрашиваете о проверке данных. Вы должны найти кое-что хорошее в статье MSDN, на которую я ссылался выше.

person sliderhouserules    schedule 30.10.2008