对url中的参数进行转码

url参数进行转码的方式:
1.encodeURI()
2.encodeURIComponent()
3.Base64.encode
示例1:
var url = "https://www.baidu.com/index.php?t=仪表盘&&ss=dash&&vv=星星"
encodeURI(url)
-->

屏幕快照 2019-09-10 下午4.18.47.png

示例2:
var url = "https://www.baidu.com/index.php?t=仪表盘&&ss=dash&&vv=星星"
encodeURIComponent(url)
-->

屏幕快照 2019-09-10 下午4.20.16.png

示例3:
是只对参数进行转码,使用split对url进行拆分
var url = "https://www.baidu.com/index.php?t=仪表盘&&ss=dash&&vv=星星"
var newSearch = url.split('?')[1].split('&&').map(item => {
const params = item.split('=');
return ${params[0]}=${encodeURIComponent(params[1])}
}).join('&&');
url = ${url.split('?')[0]}?${newSearch};
console.log(url)

屏幕快照 2019-09-10 下午4.22.50.png

注意:如果转码过后的url需要打开一个新的页面,chrome上会对转码的url进行解码,这样会达不到相应的转码效果。
可以使用Base64.encode替换encodeURIComponent

var url = "https://www.baidu.com/index.php?t=仪表盘&&ss=dash&&vv=星星"
var newSearch = url.split('?')[1].split('&&').map(item => {
const params = item.split('=');
return ${params[0]}=${Base64.encode(params[1])}
}).join('&&');
url = ${url.split('?')[0]}?${newSearch};
console.log(url)

类似这样的效果:https://www.baidu.com/index.php?tn=5paH5pyL55qE5Luq6KGo55uY&&sss=ZGFzaGJvYXJkLWFsbDE1NTU2NjQyMjE5MDk=

如果是直接获取网上的url可以
const newSearch = location.search.substring(1).split('&').map(item => {
const params = item.split('=');
return ${params[0]}=${encodeURIComponent(params[1])} }).join('&');
${location.href.split('?')[0]}?${newSearch};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容