摘要:以后会不定期把项目中用到的也是我们平时开发常用的一些方法贴出来,也是一个自我总结的过程获取键值是我们在项目会经常遇到的需求。
以后会不定期把项目中用到的也是我们平时开发常用的一些方法贴出来,也是一个自我总结的过程
获取url键值是我们在项目会经常遇到的需求。下面是我在项目中封装的方法,详细的说明在代码都有注释。
/** * 获取url键值 * url => [href] | [param] * 不填参数则返回JSON 格式所有数据 */ const urlCodeToObj = url => { let u = url || window.location.href //判断url是完整的链接还是传入的参数 if (RegExp(/^((https|http)?://)/).test(u)) { //将url中的空格去掉并匹配"?"后面的参数字符串集合 const search = u.replace(/^s+|s+$/, "").match(/([^?#]*)(#.*)?$/) if (!search) { search = {} } //把匹配到的字符串以"&"分割变换成数组形式 let searchHash = search[1].split("&"); let paramObj = {} //键值对对象集合 for (let item of searchHash) { const pair = item.split("=") if (pair[0]) { const key = decodeURIComponent(pair[0]) const value = pair[1] if (value != undefined) { value = decodeURIComponent(value) } } //判断转化后的paramObj里面有没有重复的属性 if (key in paramObj) { if (paramObj[key] instanceof Array) { //把属性值变为数组,将另外的属性值也存放到数组中去 paramObj[key] = [paramObj[key]] } paramObj[key].push(value) } else { paramObj[key] = value } } return paramObj } else { //返回单个属性值 string if (RegExp(/^w+/).test(u)) { //匹配属性值,比如http://xxx.com/web/page/prodetail.html?num=200&productID=4690&id=100 //输入值为 &productID=4690&,然后进行匹配. let reg = new RegExp(`(^|&)${u}=([^&]*)(&|$)`,"i") const matchArr = window.location.search.substr(1).match(reg) if (matchArr != null) return (matchArr[2]) return null } } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/90276.html
摘要:添加依赖到如何使用依赖当你再兴建一个文件的时候,就不需要一个个插件安装了,将文件复制到当前文件下,并输入,即通过里的依赖关系,自动把依赖安装好了。第四步新建配置文件默认的配置文件在项目目录下为。 WilsonLius blog 首发地址 前言 早就想尝试webpack的,却一直没有时间,恰逢周末,又时值最近在公司实习的时候尝到用fekit做模块化的构建工具的爽。所以就开始以公司的项目结...
阅读 862·2021-11-22 12:04
阅读 2062·2021-11-02 14:46
阅读 590·2021-08-30 09:44
阅读 2071·2019-08-30 15:54
阅读 690·2019-08-29 13:48
阅读 1571·2019-08-29 12:56
阅读 3387·2019-08-28 17:51
阅读 3265·2019-08-26 13:44