正则表达式获取URL参数

爱好是你度过闲暇时间的一种有趣的方式,可能是你寻求乐趣的一种活动,可能是一个人的感情寄托,也可能是人生奋斗的动力.人如果没有了爱好,人生就缺少了奋斗的坐标,自然也就失去了为之奋斗的动力.一个人到了成年还不知道自己的爱好是什么,他肯定会为自己的碌碌无为而懊悔,为找不到人生的位置而迷茫.它就像一个由你选择的特殊的朋友,它吸引着你,你也喜欢它,并愿意为它花费时间和精力.希望我们每个人一生都能做自己最喜爱的事,就是最大的幸福。

在工作中需要取URL中的参数,很多,想到了写个表达式。

C#版本:

stringurl="http://url/default.aspx?sname=sd&articleid=76369635-2b9c-495e-a7ec-44bbb290991f&pagenum=2&magid=156&rtype=next";

RegexurlRegex=newRegex(@"(?:^|\?|&)pagenum=([^&]*)(?:&|$)");

Matchm=urlRegex.Match(url.ToLower());

stringpagenum=string.Empty;

if(m.Success)

{

pagenum=m.Groups[1].Value;

}

JS版本(转):

functiongetUrlParam(name){

varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)");

varr=window.location.search.substr(1).match(reg);

if(r!=null){

returnunescape(r[2]);

}

returnnull;

}

alert(getUrlParam("Id"));

如当前的URL是http://localhost/test/Untitled-11.html?Id=12456,那么函数返回12456,

正则表达式"(^|&)"+name+"=([^&]*)(&|$)"是这个函数的关键

函数的返回值r[2],代表了正则表达式中的第二个匹配([^&]*)。为什么"([^&]*)"能匹配12456呢?

根据正则表达式的语法,[^xyz]负值字符集合。匹配未包含的任意字符。例如,'[^abc]'可以匹配"plain"中的'p'。"[^&]*"就是零个或多个除"&"之外任意字符。

相关推荐