Autumn_Ning_Blog
Autumn_Ning_Blog copied to clipboard
URL Serialization
trafficstars
URL的序列化代码
var str = "https://www.google.com.hk:3000/search/cadsacd/hello/hrllo.html?q=jsbin&oq=jsbin&aqs=chrome..69i57j0l5.4360j0j7&sourceid=chrome&ie=UTF-8#12";
var reg = /^(?:([a-zA-Z]+):)?(\/{0,3})([a-zA-Z.\-0-9]+)(?::(\d+)\/)?(?:([^?]+))?(?:([^#]*))?(?:#(.*))?$/;
var field = ['url', 'scheme', 'slash', 'host', 'port', 'path', 'query', 'hash'];
var match = reg.exec(str);
var obj = {};
field.forEach(function(item, index) {
if(item == 'query') {
var query = match[index]
if(query) {
query = query.slice(1);
var queryArr = query.split('&');
var o = {};
queryArr && queryArr.length && queryArr.forEach(function(i, ind) {
var key = i.split('=')[0];
var value = i.split('=')[1];
o[key] = value;
})
obj[item] = o;
} else {
obj[item] = '';
}
} else {
obj[item] = match[index]
}
})
console.log(obj);