JsUrl地址拆解,并转换 serchData, queryData
export const urlSplet = function(url) {
var temp = {
default: url,
deal: '',
origin: '',
originAndPath: '',
path: '',
search: '',
searchData: '',
hash: '',
query: '',
queryData: '',
hashPath: ''
}
var left = ''
if (url.lastIndexOf('#') !== -1) {
left = url.slice(0, url.lastIndexOf('#'))
temp.hash = url.slice(url.lastIndexOf('#'))
} else {
left = url
}
var paramsToObj = function(params) {
var obj = {}
var searchArr = params.split('&')
searchArr.forEach(v => {
var index = v.indexOf('=')
if (index !== -1) {
var name = v.substring(0, index)
var val = v.substring(index + 1, v.length)
obj[name] = val
}
})
return obj
}
if (left.indexOf('?') !== -1) {
temp.search = left.slice(left.lastIndexOf('?'))
temp.searchData = paramsToObj(temp.search.replace('?', ''))
temp.originAndPath = left.slice(0, left.lastIndexOf('?'))
} else {
temp.originAndPath = left
}
var originAndPathSplit0 = temp.originAndPath.split('//')
temp.deal = originAndPathSplit0[0]
var originAndPathSplit1 = originAndPathSplit0[1]
var pathSplit = originAndPathSplit1.split('/')
temp.origin = temp.deal + '//' + pathSplit[0]
for (var i = 1; i < pathSplit.length; i++) {
if (pathSplit[i]) {
temp.path += '/' + pathSplit[i]
}
}
if (temp.hash) {
if (temp.hash.indexOf('?') !== -1) {
temp.query = temp.hash.slice(temp.hash.indexOf('?'))
temp.queryData = paramsToObj(temp.query.replace('?', ''))
temp.hashPath = temp.hash.slice(0, temp.hash.indexOf('?'))
} else {
temp.hashPath = temp.hash
}
}
return temp
}