国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net下URL處理兩個小工具方法

2024-07-10 13:14:43
字體:
來源:轉載
供稿:網(wǎng)友
有的時候我們要操作一個URL地址中查詢參數(shù),為了不破壞URL的原有結構,我們一般不能直接在URL的后面加&query=value,特別是我們的URL中有多個參數(shù)時,這種處理更麻煩。 
下面兩個小方法就是專門用來為一個URL添加一個查詢參數(shù)或刪除一個查詢參數(shù),這兩個方法隱藏了原URL有無參數(shù),是不是原來就有這個參數(shù),有沒有fragment(#anchor)這些細節(jié)和處理 
/**//// <summary> 
/// Add a query to an URL. 
/// if the URL has not any query,then append the query key and value to it. 
/// if the URL has some queries, then check it if exists the query key already,replace the value, or append the key and value 
/// if the URL has any fragment, append fragments to the URL end. 
/// </summary> 
public static string SafeAddQueryToURL(string key,string value,string url) 

int fragPos = url.LastIndexOf("#"); 
string fragment = string.Empty; 
if(fragPos > -1) 

fragment = url.Substring(fragPos); 
url = url.Substring(0,fragPos); 

int querystart = url.IndexOf("?"); 
if(querystart < 0) 

url +="?"+key+"="+value; 

else 

Regex reg = new Regex(@"(?<=[&/?])"+key+@"=[^/s&#]*",RegexOptions.Compiled); 
if(reg.IsMatch(url)) 
url = reg.Replace(url,key+"="+value); 
else 
url += "&"+key+"="+value; 

return url+fragment; 

/**//// <summary> 
/// Remove a query from url 
/// </summary> 
/// <param name="key"></param> 
/// <param name="url"></param> 
/// <returns></returns> 
public static string SafeRemoveQueryFromURL(string key,string url) 

Regex reg = new Regex(@"[&/?]"+key+@"=[^/s&#]*&?",RegexOptions.Compiled); 
return reg.Replace(url,new MatchEvaluator(PutAwayGarbageFromURL)); 

private static string PutAwayGarbageFromURL(Match match) 

string value = match.Value; 
if(value.EndsWith("&")) 
return value.Substring(0,1); 
else 
return string.Empty; 


測試: 
string s = "http://www.cnblogs.com/?a=1&b=2&c=3#tag"; 
WL(SafeRemoveQueryFromURL("a",s)); 
WL(SafeRemoveQueryFromURL("b",s)); 
WL(SafeRemoveQueryFromURL("c",s)); 
WL(SafeAddQueryToURL("d","new",s)); 
WL(SafeAddQueryToURL("a","newvalue",s)); 
// 輸出如下: 
// http://www.cnblogs.com/?b=2&c=3#tag 
// http://www.cnblogs.com/?a=1&c=3#tag 
// http://www.cnblogs.com/?a=1&b=2#tag 
// http://www.cnblogs.com/?a=1&b=2&c=3&d=new#tag 
// http://www.cnblogs.com/?a=newvalue&b=2&c=3#tag 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吴川市| 饶河县| 习水县| 吉林市| 马龙县| 湖南省| 化德县| 津南区| 黄山市| 高雄市| 高密市| 宜州市| 云南省| 长汀县| 城固县| 万山特区| 从化市| 中方县| 宝应县| 时尚| 讷河市| 中西区| 苍山县| 乌兰浩特市| 三门峡市| 秀山| 镇宁| 临汾市| 固始县| 赤水市| 三门峡市| 烟台市| 溧阳市| 宁城县| 台南市| 甘南县| 柳林县| 湘西| 德庆县| 沾益县| 乌鲁木齐市|