Разделить 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, время: 16:56. |