Autumn_Ning_Blog icon indicating copy to clipboard operation
Autumn_Ning_Blog copied to clipboard

URL Serialization

Open wangning0 opened this issue 8 years ago • 0 comments
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);

wangning0 avatar Jul 17 '17 14:07 wangning0