【JavaScript如何获取URL查询参数的属性和值(有没有相应的插件支持?)】JavaScript如何获取URL查询参数的属性和值?有没有第三方相应的插件支持?
JS获取URL查询参数的方式有很多,主要方法如下:
1、使用URLSearchParams
// 使用URLSearchParams,除了IE的大部分浏览器都支持
var urlParams = new URLSearchParams(window.location.search);
var name = urlParams.get("name");
console.log(name);
2、使用JS正则表达式获取URL查询参数
// 使用正则表达式匹配
function getParamByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&
');
var regex = new RegExp('[?&
]' + name + '(=([^&
#]*)|&
|#|$)'),
results = regex.exec(url);
if (!results)
return null;
if (!results[2])
return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}var name = getParamByName("name");
console.log(name);
3、ES6获取URL查询参数
// ES6的方式
getQueryStringParams = query => {
return query
? (/^[?#]/.test(query) ? query.slice(1) : query)
.split('&
')
.reduce((params, param) => {
let [key, value] = param.split('=');
params[key] = value ? decodeURIComponent(value.replace(/\+/g, ' ')) : '';
return params;
}, {}
)
: {}
};
4、使用jQuery插件
(function($) {
$.QueryString = (function(paramsArray) {
let params = {};
for (let i = 0;
i <
paramsArray.length;
++i)
{
let param = paramsArray[i]
.split('=', 2);
if (param.length !== 2)
continue;
params[param[0]] = decodeURIComponent(param[1].replace(/\+/g, " "));
}return params;
})(window.location.search.substr(1).split('&
'))
})(jQuery);
5、使用字符串split的方式截取URL查询参数
function get(n) {
var half = location.search.split('&
' + n + '=')[1];
if (!half) half = location.search.split('?' + n + '=')[1];
return half !== undefined ? decodeURIComponent(half.split('&
')[0]) : null;
}
推荐阅读
- C++中的引用用法指南和代码示例
- JavaScript如何给HTML元素动态绑定onclick和hover事件()
- JavaScript原型链和继承原理分析和实例详解(一)(原型和原型链)
- JS进阶之JavaScript闭包原理和应用实例详解
- 进阶!这一次彻底理解JavaScript的执行上下文(Execution Context)
- 在vue.js中使用Ajax发送get和post请求
- vue.js混入(minxins)的使用说明
- 由于应用BundleID信息校正不通过,无法分享到微信的问题——已解决
- 关于Sign in with the app-specific password you generated 两步解决