栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[工具类]获取url中参数列表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[工具类]获取url中参数列表

写在前面

在项目中经常用到解析url中参数的逻辑,今天先下载就自己封装了一个方法,方便以后使用的时候,信手拈来。当然这里给出的方法是针对常见的url参数类型的,对于重写url,或者路由格式的不考虑。

c#方法

        /// 
       /// 获取url中参数        ///

       /// 要解析的url
       /// 基地址
       /// 参数键值对
       public static NamevalueCollection GetUrlParamters(string url, out string baseUrl)
       {            if (string.IsNullOrEmpty(url))
           {                throw new ArgumentNullException("url");
           }
           NamevalueCollection namevalueCollection = new NamevalueCollection();            if (url.IndexOf('?') == -1)
           {
               baseUrl = url;                return namevalueCollection;
           }            string[] strUrlParts = url.Split('?');
           baseUrl = strUrlParts[0];
           Regex regex = new Regex(@"(^|&)?(?w+)=(?[^&]+)(&|$)?", RegexOptions.Compiled);
           MatchCollection matches = regex.Matches(url);            foreach (Match item in matches)
           {                if (item.Success)
               {
                   namevalueCollection.Add(item.Groups["key"].Value, item.Groups["value"].Value);
               }
           }            return namevalueCollection;
       }

测试

        static void Main(string[] args)
       {            string url = "https://www.baidu.com?p=23432&w=sss&s=kkkdfd";            string baseUrl = string.Empty;
           NamevalueCollection parameters = GetUrlParamters(url, out baseUrl);
           Console.WriteLine(baseUrl);            foreach (var item in parameters.Keys)
           {
               Console.WriteLine(item + "=" + parameters[item.ToString()].ToString());
           }
           Console.Read();
       }

 

js方法