【原创】过滤Request参数

利用System.Web.HttpContext.Current.Request.Url.Query.Split方法能得到这样的字符?name=caicaihui&title=hahaha&page=1

假如我们想过滤掉其中一个参数,如过滤掉page参数,得到最终结果?name=caicaihui&title=hahaha 那怎么办呢,这里我写了三种方法让大家参考


方法一 利用数组

private string OutRequest1(string request)
    {
        
string query = "";
        
string[] para = System.Web.HttpContext.Current.Request.Url.Query.Split("?&".ToCharArray());
        
foreach (string name in para)
        {
            
if (!name.ToLower().Contains(request))
            {
                query 
+= "&" + name;
            }
        }
        
return "?" + query.TrimStart('&');
    }

调用
OutRequest1("page")



方法二 遍历Request

private string OutRequest2(string request)
    {
        
string query = "";
        
foreach(string name in Request.QueryString.AllKeys) 
        {
            
if (name.ToLower() != request)
            {
                query 
+= "&" + name + "=" + Request.QueryString[name];
            }
        }
        
return "?" + query.TrimStart('&');
    }

调用
OutRequest2("page")


方法三 利用正则表达式

private string OutRequest3(string request)
    {
        
return Regex.Replace(System.Web.HttpContext.Current.Request.Url.Query, request, "");
    }

调用
OutRequest3(@"[&|\?]page=\d+")


代码方面:三种方法里正则代码是最简单的,但是也是难的,其次就是方法二,容易理解

效率方面:  方法二 > 方法三 > 方法一
posted @ 2007-09-13 20:34  菜菜灰  阅读(842)  评论(0编辑  收藏  举报