Разделить hash url на части
Доброго времени суток.
ни как не могу найти возможность разделить URL. url формата: http://exemple.com/index.php?module=XXX#key&type&id=1 location.hash; выдает #tabs&key=1&id=1 На выходе нужно разделить хэш на части: ключ, тип, айди + значение Если возможно, то каким методом? |
Цитата:
function hash(key) {
var hash = {}, q;
if (location.hash) {
var arr = location.hash.slice(1).split('&');
for (var i = 0; i < arr.length; i++) {
if (q = arr[i].split('='))
hash[q[0]] = decodeURIComponent(q[1]) || null;
}
}
return key
? hash.hasOwnProperty(key) ? hash[key] : null
: hash;
}
console.log(hash('id'));
|
Чувствую уже начинаю тупить.. но
вот рабочий хэш #Managers&editorManager&id=1 Из него нужно вытащить - Managers - editorManager - 1 |
alert(
"http://exemple.com/index.php?module=XXX#key&type&id=1"
.replace(/[^#]+#/, "").split("&")
)
|
Цитата:
alert(
"http://exemple.com/index.php?module=XXX#Managers&editorManager&id=1"
.replace(/[^#]+#/, "").split("&").map(function(s){return s.replace(/[^=]+=/, "")})
)
|
супер. а как теперь их разбить?
|
В смысле? это уже разбитый массив строк.
|
Прошу прощения уже засыпаю на ходу..
Но сейчас на выходе: Managers,editorManager,13 как теперь их занести в data : { key : Managers, type : editorManager, id : 13 }, |
alert(new URL('http://exemple.com/index.php?module=XXX#key&type&id=1').hash)
https://github.com/inexorabletash/po.../master/url.js https://developer.mozilla.org/en-US/docs/Web/API/URL |
Infinity178,
в простом случае можно так:
arr="http://exemple.com/index.php?module=XXX#Managers&editorManager&id=1"
.replace(/[^#]+#/, "").split("&").map(function(s){return s.replace(/[^=]+=/, "")})
data={key: arr[0], type: arr[1], id: arr[2]}
console.log(data)
|
| Часовой пояс GMT +3, время: 11:36. |