zoukankan
html css js c++ java
用 C# 分析 URL 中的参数信息
using
System;
using
System.Collections.Specialized;
using
System.Text.RegularExpressions;
namespace
UrlParse
{
/**/
///
<summary>
///
分析 url 字符串中的参数信息
///
</summary>
class
Class1
{
/**/
///
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
string
url
=
"
http://www.xxx.com/xyz/hello.asp?a=3&typeId=45&cc=ILoveYou
"
;
NameValueCollection nvc;
string
baseUrl;
ParseUrl(url,
out
baseUrl,
out
nvc);
//
output results
Console.WriteLine(
"
baseUrl: {0}
"
, baseUrl);
Console.WriteLine(
"
parameters:
"
);
for
(
int
i
=
0
; i
<
nvc.Count; i
++
)
Console.WriteLine(
"
{0}, {1}
"
, nvc.Keys[i], nvc[i]);
Console.ReadLine();
}
/**/
///
<summary>
///
分析 url 字符串中的参数信息
///
</summary>
///
<param name="url">
输入的 URL
</param>
///
<param name="baseUrl">
输出 URL 的基础部分
</param>
///
<param name="nvc">
输出分析后得到的 (参数名,参数值) 的集合
</param>
///
<author>
木野狐(Neil Chen)
</author>
///
<date>
2005-06-23
</date>
static
void
ParseUrl(
string
url,
out
string
baseUrl,
out
NameValueCollection nvc)
{
if
(url
==
null
)
throw
new
ArgumentNullException(
"
url
"
);
nvc
=
new
NameValueCollection();
baseUrl
=
""
;
if
(url
==
""
)
return
;
int
questionMarkIndex
=
url.IndexOf(
'
?
'
);
if
(questionMarkIndex
==
-
1
)
{
baseUrl
=
url;
return
;
}
baseUrl
=
url.Substring(
0
, questionMarkIndex);
if
(questionMarkIndex
==
url.Length
-
1
)
return
;
string
ps
=
url.Substring(questionMarkIndex
+
1
);
//
开始分析参数对
Regex re
=
new
Regex(
@"
(^|&)?(\w+)=([^&]+)(&|$)?
"
, RegexOptions.Compiled);
MatchCollection mc
=
re.Matches(ps);
foreach
(Match m
in
mc)
{
nvc.Add(m.Result(
"
$2
"
), m.Result(
"
$3
"
));
}
}
}
}
查看全文
相关阅读:
观察者模式(学习笔记17)
web前端安全编码(模版篇)
如何获取元素最终使用的css值
Range在各浏览器下的问题和常见处理办法
总结cookie的一些问题
js 设计模式单例模式
web端不能登录问题汇总
多域名登录方案思考
深入分析js中的constructor 和prototype
由一次代码优化想到的Js 数据类型
原文地址:https://www.cnblogs.com/RChen/p/179627.html
最新文章
【老孙随笔】北京,居不易呀!
项目经理的一杯咖啡
【老孙随笔】注意啦,精神集中点儿!
项目经理,别让猴子跳回背上!
中国领导力沙龙聚会在百度
【老孙随笔】永生
【原创】腾讯微博的XSS攻击漏洞
我的KT库之扩展方法
我的KT库之数据对象
我的KT库之数据库的操作(DbHelper)
热门文章
我的KT库之对象池
怪异的StackOverflowException异常
我的KT库之缓存与配置
享元模式(学习笔记12)
享元模式(学习笔记11)
责任链模式(职责链,学习笔记15)
命令模式(学习笔记14)
状态模式(学习笔记16)
策略模式(学习笔记13)
外观模式(学习笔记11)
Copyright © 2011-2022 走看看