日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

URL处理两个小工具方法

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 URL处理两个小工具方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章出處:http://blog.csdn.net/ronanlin/archive/2006/08/30/1143090.aspx
有的時候我們要操作一個URL地址中查詢參數,為了不破壞URL的原有結構,我們一般不能直接在URL的后面加&query=value,特別是我們的URL中有多個參數時,這種處理更麻煩。
下面兩個小方法就是專門用來為一個URL添加一個查詢參數或刪除一個查詢參數,這兩個方法隱藏了原URL有無參數,是不是原來就有這個參數,有沒有fragment(#anchor)這些細節和處理
????????/**////?<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

轉載于:https://www.cnblogs.com/haaron-john/archive/2006/12/31/608825.html

總結

以上是生活随笔為你收集整理的URL处理两个小工具方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。