Pregunta

¿Hay alguna biblioteca por ahí que pueda usar en mi aplicación ASP.NET actual, para validar queryStrings?

Editar ~ Usando Regex para buscar patrones, como cadena, solo, solo numérico, cadena con longitud x, ... etc

Gracias

¿Fue útil?

Solución

No sé sobre una biblioteca, pero puede usarla para verificar si existe la cadena de consulta:

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

Si desea usar Reglar Expressions para validar aún más, puede crear una clase que acepte la cadena y devuelva un booleano.

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;
}

Este es un buen programa gratuito para ayudarte a construir las expresiones regulares: Expresso

Otros consejos

El mejor enfoque para este tipo de cosas probablemente sería usar expresiones regulares para verificar cualquier condición que estés buscando.

Sería bueno en un escenario real separar la validación de la presentación pero solo por un ejemplo:

  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.
        }
    }

¿Quieres preguntar sobre dividir la cadena de consulta en sus partes? ASP.Net ya lo hace por ti. Puede acceder a los parámetros individuales a través de la colección Request.QueryString.

Para la cadena de consulta:? fruit = apple & amp; socks = white

Request.QueryString [" fruit "] te dará " apple " ;, y Request.QueryString [" socks "] te dará " white " ;.

Si está hablando de validar la cadena de consulta para las solicitudes a medida que entran, el .NET Framework ya lo hace. La página tiene una propiedad llamada ValidateRequest que es verdadera de forma predeterminada, y cualquier cosa que no sea válida en la cadena de consulta causará un error (la primera vez que se acceda a la cadena de consulta en su código) no tendrá que hacer nada.

Si estás hablando de validar cadenas de consulta que tienes como datos o algo, entonces este artículo de MSDN Mag puede ayudarte.

EDITAR: veo que está preguntando más acerca de la validación de datos. Debería encontrar algunas cosas buenas en el artículo de MSDN que he vinculado anteriormente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top