使用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为:

http://www.phpernote.com/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()

打赏

本文固定链接: https://www.cxy163.net/archives/3268 | 绝缘体

该日志由 绝缘体.. 于 2020年04月26日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 使用js获取url及url中的参数的方法 | 绝缘体
关键字: , , , ,

使用js获取url及url中的参数的方法:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter