本文详细介绍如何在JavaScript和jQuery中获取URL地址栏参数。首先通过window.location.href直接获取完整链接,随后利用正则表达式解析location.search提取特定参数值。文章提供了原生JS函数实现及jQuery扩展方法的完整代码,帮助开发者快速掌握前端参数提取技巧。
在Web开发中,经常需要读取当前页面的URL地址以及从中提取特定的参数信息。
获取完整URL地址
获取完整的URL地址相对简单,只需访问浏览器提供的全局对象属性即可。
具体实现代码如下:
window.location.href;该操作直接调用了原生JavaScript的window对象,并未涉及jQuery库,用于获取当前页面的完整链接字符串。
相比之下,从URL中提取特定参数需要更复杂的逻辑,通常依赖正则表达式进行匹配,因此掌握JavaScript正则表达式至关重要。
原生JavaScript提取参数
我们先探讨如何仅使用原生JavaScript从URL中解析出指定参数。
具体实现代码如下:
function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r!=null) return unescape(r[2]); return null; //返回参数值
} 定义上述函数后,只需传入目标参数的名称即可获取其值。例如,假设当前URL为:
http://www.xxx.loc/admin/write-post.php?cid=79
若需获取参数cid的值,调用方式如下:
具体实现代码如下:
getUrlParam('cid');jQuery扩展参数提取方法
理解了原生JavaScript的提取逻辑后,我们可以将此功能封装并扩展至jQuery库,以便在jQuery环境中直接调用。
以下代码展示了如何为jQuery对象扩展一个名为getUrlParam的方法。
具体实现代码如下:
(function($){
$.getUrlParam
= function(name)
{
var reg
= new RegExp("(^|&)"+
name +"=([^&]*)(&|$)");
var r
= window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
})(jQuery);完成jQuery扩展后,即可通过jQuery语法直接调用该方法获取参数值。
具体实现代码如下:
$.getUrlParam('cid');