内容简介:常用URL参数操作方法
获取单个参数
/** * [getParam ] * @param {String} name * @param {String} url [default:location.href] * @return {String|Boolean} */ function getParam(name, url) { if(typeof name !== 'string') return false; if (!url) url = window.location.href; // 当遇到name[xx]时,对方括号做一下转义为 name\[xxx\],因为下面还需要使用name做正则 name = name.replace(/[\[\]]/g, '\\$&'); var regex = new RegExp('[?&]' + name + '(=([^]*)|&|#|$)'); var results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } getParam('query','https://juejin.im/search?query=hello&time=2017-11-12') // output: // "hello"
设置单个参数
/** * [setParam 设置单个参数] * @param {String} name * @param {String|Number} val * @return {String|Boolean} */ function setParam(name, val, url) { if(typeof name !== 'string') return false; if (!url) url = window.location.href; var _name = name.replace(/[\[\]]/g, '\\$&'); var value = name + '=' + encodeURIComponent(val); var regex = new RegExp(_name + '=[^&]*'); var urlArr = url.split('#'); var result = ''; if(regex.exec(url)){ result = url.replace(regex, value); }else{ result = urlArr[0]+'&'+value+ (urlArr[1] || ''); } return result } setParam('query','world','https://juejin.im/search?query=hello&time=2017-11-12') // output: // "https://juejin.im/search?query=world&time=2017-11-12"
移除单个参数
/** * [removeParam 移除单个参数] * @param {String} name * @param {String} url [default:location.href] * @return {String|Boolean} */ function removeParam(name, url) { if(typeof name !== 'string') return false; if (!url) url = window.location.href; var urlparts = url.split('?'); var prefix = encodeURIComponent(name + '='); var pars = urlparts[1].split(/[&;]/g); var i = 0, len = pars.length; for (; i < len; i++) { if (encodeURIComponent(pars[i]).lastIndexOf(prefix, 0) !== -1) { pars.splice(i, 1); } } url = urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : ''); return url; } removeParam('query','https://juejin.im/search?query=hello&time=2017-11-12') // output: // "https://juejin.im/search?time=2017-11-12"
获取多个参数
/** * [getParams 获取多个参数] * @param {String} names [多个用空格分割] * @param {String} url [default:location.href] * @return {[String|Boolean]} */ function getParams(names, url) { if(typeof name !== 'string') return false; var names = names.split(' '); var result = {}; var i = 0, len = names.length; if (names.length === 0) return false; for (; i < len; i++) { result[names[i]] = getParam(names[i], url); } return result; } getParams('query time','https://juejin.im/search?query=hello&time=2017-11-12') // output: // {query: "hello", time: "2017-11-12"}
设置多个参数
/** * [setParams 设置多个参数] * @param {Object} obj * @param {String} url [default:location.href] * @return {[String|Boolean]} */ function setParams(obj, url) { var result = url || ''; if (Object.prototype.toString.call(obj) !== '[object Object]') return false; for (var name in obj) { result = setParam(name, obj[name], result); } return result; } setParams({a:111,b:222,query:'world'},'https://juejin.im/search?query=hello&time=2017-11-12') // output: // "https://juejin.im/search?query=world&time=2017-11-12&a=111&b=222"
移除多个参数
/** * [removeParams 移除多个参数] * @param {String} names [多个用空格分割] * @param {String} url [default:location.href] * @return {[String|Boolean]} */ function removeParams(names, url) { var result = url || ''; var names = names.split(' '); var i = 0, len = names.length; if (names.length === 0) return false; for (; i < len; i++) { result = removeParam(names[i], result); } return result; } removeParams('query time','https://juejin.im/search?query=hello&time=2017-11-12') // output: // "https://juejin.im/search"
url hash 操作
/** * [getHash 方法] * @param {[String]} url [default:location.href] * @return {[String]} */ function getHash(url) { return decodeURIComponent(url ? url.substring(url.indexOf('#') + 1) : window.location.hash.substr(1)); } /** * [setHash 方法] * @param {String} hash */ function setHash(hash) { window.location.replace('#' + encodeURIComponent(hash)); } /** * [removeHash 方法] */ function removeHash() { window.location.replace('#', ''); }
如果发现有BUG,请前往 GitHub 提 issue
如果觉得本文对您有帮助,请给个赞。(๑•ᴗ•๑)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Nmap常用参数
- 15个最常用的GCC编译器参数
- Spring MVC常用客户端参数接收方式
- ORACLE数据库EXPDP/IMPDP常用参数
- 面试常问的,JVM常用参数以及命令,瞧,你又不会了!
- TypeScript 中的命名参数、可选参数、默认参数
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ASP.NET 2.0入门经典
哈特 / 清华大学出版社 / 2006-8 / 78.00元
该书是Wrox红皮书中的畅销品种, 从初版、1.0版、1.1版到目前的2.0版,已经3次升级,不仅内容更加完善、实用,还展现了.NET 2.0的最新技术和ASP.NET 2.0最新编程知识,是各种初学者学习ASP.NET的优秀教程,也是Web开发人员了解ASP.NET 2.0新技术的优秀参考书。该书与《ASP.NET 2.0高级编程(第4版)》及其早期版本,曾影响到无数中国Web程序员。一起来看看 《ASP.NET 2.0入门经典》 这本书的介绍吧!