使用js获取url及url中的参数的方法

前端APP 投稿 21100 0 评论

使用js获取url及url中的参数的方法

使用js获取url及url中的参数的方法。

1、js获取url很简单,代码如下:

window.location.href;

2、javascript获取url中的某个参数:

//获取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中的参数名就可以获取到参数的值,比如url为:

https://www.feishuai.vip/index.php?m=index&a=category&id=88

我们要获取 a 的值,可以这样写:

var xx = getUrlParam('a');

注意:

今天在用上面的方法获取url中的参数时,url中传递的中文参数在解析的时候无论怎么测试,获取的都是乱码。经过一番调试后发现,我再传递参数时,对汉字编码使用的是 encodeURI,而上面的方法在解析参数编码时使用的是unescape ,修改为 decodeURI 就可以了。

附: W3School中的介绍:

JavaScript unescape() 函数

定义和用法

unescape() 函数可对通过 escape() 编码的字符串进行解码。

参数    描述

string    必需。要解码或反转义的字符串。

说明

该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

提示和注释

注释:ECMAScript v3 已从标准中删除了 unescape( 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

综上: javascript对参数编码解码方法要一致:

escape()   unescape()
encodeURI()   decodeURI( )
encodeURIComponent()   decodeURIComponent()

编程笔记 » 使用js获取url及url中的参数的方法

赞同 (106) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽