2008-10-30 102 views
3

是否有一个库可以在我当前的ASP.NET应用程序中用于验证queryStrings?验证ASP.NET中的QueryStrings

编辑〜使用正则表达式查找模式,如字符串,只有,只有数字,字符串长x ...等

感谢

回答

5

不知道有一个图书馆,但你可以用它来检查查询字符串存在:

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

如果你想使用Reglar表达式来进一步验证,您可以创建一个接受字符串类,并返回一个布尔值。

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

这是一个很好的免费程序,以帮助您构建regluar表达式:Expresso

+0

我有这个了。 – 2008-10-30 19:29:14

1

你的意思是问断的查询字符串到它的部分? ASP.Net已经为你做到了。您可以通过Request.QueryString集合访问各个参数。

对于查询字符串:水果=苹果&袜子=白

的Request.QueryString [“果”]会给你的“苹果”,到Request.QueryString [“袜子”]会给你“白”。

0

如果您正在讨论验证请求的查询字符串,.NET Framework已经这样做了。 Page有一个名为ValidateRequest的属性,默认情况下为true,任何无效的查询字符串都会导致一个错误(第一次查询字符串在您的代码中被访问)而无需执行任何操作。

如果你正在讨论验证查询字符串,你有作为数据或东西,然后this MSDN Mag article可能会帮助你。

编辑:我看到你问的更多关于数据验证。你应该在我上面链接的MSDN文章中找到一些好东西。

2

这种事情的最佳方法可能是使用正则表达式来检查你正在寻找的任何条件。

这将是一件好事在实际情况下,以验证从演示,但只是一个例子的缘故分开:

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