JavaScript 获取 URL 参数的两种实现方式:字符串截取与正则匹配

作者:代码拾荒

时间:2026-10-25

浏览:653

本文介绍了在 JavaScript 中获取 URL 查询参数的两种常用方法。第一种通过字符串截取与分割解析参数对,第二种利用正则表达式直接匹配目标参数。文章提供了完整的函数代码示例,包括处理空参数、还原加号及返回默认值的逻辑,帮助开发者根据实际需求选择合适方案。

文章目录

JavaScript 获取 URL 参数方法详解

除了上述方法,我们还可以直接使用正则表达式进行匹配,文中随后给出了相应的正则示例。


分解链接的方式:

字符串截取法实现

具体实现代码如下:

 
<script type="text/javascript">
<!-- 
// 说明:Javascript 获取链接(url)参数的方法
function getQueryString(name)
{ 
// 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
{ 
return '';
} 
// 获取链接中参数部分
var queryString = location.href.substring(location.href.indexOf("?")+1);
// 分离参数对 ?key=value&key2=value2
var parameters = queryString.split("&");
var pos, paraName, paraValue;
for(var i=0; i<parameters.length; i++)
{ 
// 获取等号位置
pos = parameters[i].indexOf('=');
if(pos == -1) { continue; }
// 获取name 和 value
paraName = parameters[i].substring(0, pos);
paraValue = parameters[i].substring(pos + 1);
// 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格
if(paraName == name)
{ 
return unescape(paraValue.replace(/\+/g, " "));
} 
} 
return '';
}; 
//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryString('test'));
//--> 
</script>

用正则匹配的方式:

正则表达式法实现

另一种实现方式如下:

 
<script type="text/javascript">
<!-- 
function getQueryStringRegExp(name)
{ 
var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
}; 
//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryStringRegExp('test'));
//--> 
</script>

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章