var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;
这个方法是获得页面url的某个url参数的方法
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
这个正则是寻找&+url参数名字=值+&
&可以不存在。
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
在JS中正则表达式若有几个部分组成,即有几个正则表达式组成,则在MATCH后会返回匹配项及各个部分。
如下例进行分段解析。
var reg = new RegExp("(^|&)" + "code" + "=([^&]*)(&|$)", "i");
var r = "code=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=80035161_1_dg".substr(0).match(reg);
则r为一个数组,共有四项,分别如下:
r[0] 为发现的匹配项,如此项为null,则r本身即为空。此时,该项为"code=utf-8&".
r[1] 为第一个正则表达式所匹配的项,即(^|&)所对应的项,目前为空,即“”。
r[2]为第二个正则表达式所匹配的项,即([^&]*)所对应的项,目前为“utf-8
r[3]为第三个正则表达式所匹配的项,即(&|$)所对应的项,目前为”&“,若为最后一个,则为”“。