引用场景:
一条链接带数个参数,其中有参数是一条url(也带有参数),这样就会造成获取参数丢失。
例如
url: https://www.baidu.com/?params...://www.baidu.com/?err=ppp&lll=xxxx
获取参数
// 截取url对应的参数 getUrlParam (url) { url = url == null ? window.location.href : url const search = url.substring(url.lastIndexOf('?') + 1) const obj = {} const reg = /([^?&=]+)=([^?&=]*)/g search.replace(reg, (rs, $1, $2) => { const name = decodeURIComponent($1) let val = decodeURIComponent($2) val = String(val) obj[name] = val return rs }) console.log('url', obj) return obj }
获取结果
这是个错误的结果,
正确结果是
解决办法
通过encodeURIComponent对参数params03进行编码,
操作:
let href = encodeURIComponent('https://www.baidu.com/?err=pp...')