当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子。 分解链接的方式: 复制代码 代码如下: <BR><!-- <BR>// 说明:Javascript 获取链接(url)参数的方法 <br><br>function getQueryString(name) <BR>{ <BR>// 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空 <BR>if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1) <BR>{ <BR>return ''; <BR>} <br><br>// 获取链接中参数部分 <BR>var queryString = location.href.substring(location.href.indexOf("?")+1); <br><br>// 分离参数对 ?key=value&key2=value2 <BR>var parameters = queryString.split("&"); <br><br>var pos, paraName, paraValue; <BR>for(var i=0; i<parameters.length; i++) <BR>{ <BR>// 获取等号位置 <BR>pos = parameters[i].indexOf('='); <BR>if(pos == -1) { continue; } <br><br>// 获取name 和 value <BR>paraName = parameters[i].substring(0, pos); <BR>paraValue = parameters[i].substring(pos + 1); <br><br>// 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格 <BR>if(paraName == name) <BR>{ <BR>return unescape(paraValue.replace(/\+/g, " ")); <BR>} <BR>} <BR>return ''; <BR>}; <br><br>//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff <BR>alert(getQueryString('test')); <BR>//--> <BR> 用正则匹配的方式: 复制代码 代码如下: <BR><!-- <BR>function getQueryStringRegExp(name) <BR>{ <BR>var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i"); <BR>if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return ""; <BR>}; <br><br>//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff <BR>alert(getQueryStringRegExp('test')); <BR>//--> <BR>