检查 URL 的一部分是否被编码

Check if part of URL is encoded

我有以下 URL 并且我解码它工作正常但问题是 URL 的部分未编码,有一种方法可以检查 URL 的哪一部分URL 被编码和解码。我需要解码它并做一些逻辑然后再次编码,问题是我编码了不需要编码的部分

例如这是 URL

http%3A%2F%2Fm-d6fe73.m.corp%3A506%2Flin%2Fcalack&client_id=ts2.node

如您所见,calack&client_id=ts2.node 未在此处编码,它可以是 URL

中的任何参数

这应该有效:

var url = 'http%3A%2F%2Fm-d6fe73.m.corp%3A506%2Flin%2Fcalack&client_id=ts2.node';
var result = url.split('&').map(function(item){
   return (item.indexOf('%')>=0)? decodeURIComponent(item) : item;
});
console.log(result.join('&')); // will give you: http://m-d6fe73.m.corp:506/lin/calack&client_id=ts2.node