使用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()