[工具类]获取url中参数列表
写在前面
在项目中经常用到解析url中参数的逻辑,今天先下载就自己封装了一个方法,方便以后使用的时候,信手拈来。当然这里给出的方法是针对常见的url参数类型的,对于重写url,或者路由格式的不考虑。
c#方法
/// <summary>
/// 获取url中参数
/// </summary>
/// <param name="url">要解析的url</param>
/// <param name="baseUrl">基地址</param>
/// <returns>参数键值对</returns>
public static NameValueCollection GetUrlParamters(string url, out string baseUrl)
{
if (string.IsNullOrEmpty(url))
{
throw new ArgumentNullException("url");
}
NameValueCollection nameValueCollection = new NameValueCollection();
if (url.IndexOf('?') == -)
{
baseUrl = url;
return nameValueCollection;
}
string[] strUrlParts = url.Split('?');
baseUrl = strUrlParts[];
Regex regex = new Regex(@"(^|&)?(?<key>\w+)=(?<value>[^&]+)(&|$)?", 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方法
<script>
var getParameters = function (url) {
var nameValues = [];
if (url) {
if (url.indexOf('?') == -1) {
return nameValues.push({ baseUrl: url });
};
var arrUrlParts = url.split('?');
var baseUrl = arrUrlParts[0];
console.log(arrUrlParts[1]);
var urlParameters=arrUrlParts[1].split('&');
for (var i = 0; i < urlParameters.length; i++) {
console.log(urlParameters[i]);
var nameValue = urlParameters[i].split('=');
nameValues.push({ baseUrl: baseUrl, key: nameValue[0], value: nameValue[1]});
};
return nameValues;
};
};
console.log(getParameters('https://www.baidu.com?p=23432&w=sss&s=kkkdfd'));
测试

总结
这里将常用的方法封装一下,方便以后使用。
[工具类]获取url中参数列表的更多相关文章
- vue不通过路由直接获取url中参数的方法示例
vue不通过路由直接获取url中参数的方法示例 vuejs取得URL中参数的值地址:http://localhost:3333/#/index?id=128console.log(this.$rout ...
- js获取url中参数名也参数值
要撮利用js获取url中参数名也参数值这个不多见了,但我今天需要这样操作,下面我来给大家介绍一下具体的实例方法. 在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到. js的实现方法如下 ...
- js获取url中参数
/** * 获取地址栏参数值 * @param name 参数名 * @returns */ $(function () { var url = location.search; //获取url中 ...
- 通过正则表达式获取url中参数
url: http://xxxx.com?name=魅力&id=123 js中: var name = getUrlParam("name"); /*通过正则获取url中的 ...
- C#获取url中参数键值对的方法
方法如下: /// <summary> /// 遍历Url中的参数列表 /// </summary> /// <returns>如:(?userName=keley ...
- js的url中传递中文参数乱码,如何获取url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...
- JS中的的Url传递中文参数乱码,如何获取Url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码:<script type=”text/javascript” ...
- js 获取URL中参数
function getQueryString() { var result = location.search.match(new RegExp("[\?\&][^\?\& ...
- JavaScript根据参数获取url中参数名的值
//假设ulr如下var localhost="http://127.0.0.1?name=tom&sex=男&id=1";//正则方法封装function Get ...
随机推荐
- D_S 顺序栈的基本操作
// main.cpp #include <iostream> using namespace std; #include "Status.h" typedef in ...
- centos 下使用locate命令
首先安装mlocate yum -y install mlocate 更新数据库:updatedb 查找:locate nginx
- Team Foundation Server 2015(Update 1)集成 SharePoint Server 2013
自TFS 2008开始,TFS就提供了与SharePoint Server的集成功能,通过多年的研发和提升,目前微软已经实现了两个服务器产品之间的完美集成.通过二者之间的集成,TFS服务器大幅提高和扩 ...
- Linux下的C之2048
#include <stdio.h> #include <stdlib.h> #include <curses.h> #include <time.h> ...
- 2014 Super Training #6 F Search in the Wiki --集合取交+暴力
原题: ZOJ 3674 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3674 题意不难理解,很容易想到用暴力,但是无从下 ...
- jira与readmine区别
JIRA适合多人的团队(100+),而Readmine适合中小型团队. Redmine是用ruby开发的基于web的项目管理软件,免费.JIRA收费Redmine可以创建子任务,而jira不易创建子任 ...
- java 16 -4 LinkedList的特有功能
了解 LinkedList的特有功能: A:添加功能 public void addFirst(Object e) public void addLast(Object e) B:获取功能 publi ...
- 护眼色的RGB值
网上流行护眼色的RGB值和颜色代码 在搜索引擎搜“护眼色”,就会搜出一堆关于保护眼睛的屏幕颜色文章,说的统统是一种颜色,有点像绿豆沙的颜色.方法就是在屏幕设置里, 色调:85:饱和度:123:亮度:2 ...
- 关于eclipse入门开发c/c++文章推荐
1. 关于编译说明. http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/ 2. 关于快捷键与代码阅读 http://www.cn ...
- Git 详解
1. Git 1.1. Git是何方神圣? Git是用C语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状 态可以是不同的文 ...