[工具类]获取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 ...
随机推荐
- Sublime text3中配置Github
一.Git安装 到Git的 官网 上去下载相应环境的Git安装文件. 我的是win10,安装到D:\ProgramFiles\Git,在桌面右键出现下面两个红色框框就可以了. 二.Git配置及生成密钥 ...
- TableViewer使用
1.自定义编辑器激活方式 /** * Create a customized editor whose activation process is customized * ...
- CSU 1081 集训队分组
题意:有n个学生,比了一场比赛,但是榜单看不到了.现在告诉你m段信息,每段信息的内容是(a,b),表示a的排名比b的高.问你能不能根据这些信息得出这场比赛的前k名. 思路:用拓扑排序找出一组符合k个人 ...
- HOJ 2678 Stars
题意:N个星星(x,y,z),星星的等级等于x,y,z都小于等于它的星星数量,问每个等级有多少星星. 思路:最暴力的方法是三维树状数组.但是会超内存.所以我们对其中一维先排好序,然后用二维的做. 代码 ...
- [推荐]看图/图片管理软件XnViewMP
软件授权:免费 (希望你可以支持开发者) 软件官网:http://www.xnview.com/en/xnviewmp/ 软件简介: XnView MP 是一款非常著名的免费看图软件XnView 的新 ...
- tomcat配置jenkins遇到的问题
在执行jenkinks时,遇到以下错误: 原因:未在tomcat/conf中的tomcat-users.xml中配置用户 解决方法:在tomcat/conf/tomcat-users.xml中添加以下 ...
- 实现Maya FEM节点
准备实现FEM节点. 发现一种让自定义的Locator以及它的变换节点自动命名的方法.代码如下: void FEMSimulationNode::postConstructor() { MFnDepe ...
- typicalapp.js
/** * 1.找出数字数组中最大的元素(使用Math.max函数) 2.转化一个数字数组为function数组(每个function都弹出相应的数字) 3.给object数组进行排序(排序条件是每个 ...
- 哎呀,发现自己不会用模块的方式用kprobe啊,弱爆了
在内核外面编译模块,会报warning函数名undefined的错误,解决方法是把函数给export出来:EXPORT_SYMBOL 一直以来,用kprobe比较多的是kprobe event的用法, ...
- IEnumerable和IEnumerator 详解 (转)
原文链接:http://blog.csdn.net/byondocean/article/details/6871881 参考链接:http://www.cnblogs.com/hsapphire/a ...