在web應(yīng)用中解析URL并不容易胸完。你可以加入一個第三方parse庫或是引入polyfill然后使用處于Living standard的URL API,但如果只是一個簡單的應(yīng)用場景就不值得為此大費周章了芭逝,在github上有人分享了這么一個簡單快捷的方法:
var parser = document.createElement('a');
parser.;
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
夠簡潔的吧?不過這個方法也有幾個問題:
只適用于web場景
如果需要解析search部分(問號之后到hash之前的部分)的話,還是需要手動解析
這里貼出我寫的解析search部分的代碼:
var getSearchParams = function(search) {
var paramPart = search.substr(1).split('&');
return paramPart.reduce(function(res, item) {
parts = item.split('=');
res[parts[0]] = parts[1];
return res;
}, {});
}
它將返回一個{key: value, ..}的對象,方便進一步處理這些參數(shù)祈噪。