Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Разделить hash url на части (https://javascript.ru/forum/events/56294-razdelit-hash-url-na-chasti.html)

Infinity178 08.06.2015 23:33

Разделить hash url на части
 
Доброго времени суток.

ни как не могу найти возможность разделить URL.

url формата:
http://exemple.com/index.php?module=XXX#key&type&id=1

location.hash;
выдает #tabs&key=1&id=1

На выходе нужно разделить хэш на части:
ключ, тип, айди + значение

Если возможно, то каким методом?

Vlasenko Fedor 08.06.2015 23:58

Цитата:

Сообщение от Infinity178
#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'));

Infinity178 09.06.2015 00:08

Чувствую уже начинаю тупить.. но
вот рабочий хэш #Managers&editorManager&id=1
Из него нужно вытащить
- Managers
- editorManager
- 1

pb_ 09.06.2015 00:09

alert(
"http://exemple.com/index.php?module=XXX#key&type&id=1"
 .replace(/[^#]+#/, "").split("&")
)

pb_ 09.06.2015 00:14

Цитата:

Сообщение от Infinity178
Из него нужно вытащить
- Managers
- editorManager
- 1

alert(
"http://exemple.com/index.php?module=XXX#Managers&editorManager&id=1"
 .replace(/[^#]+#/, "").split("&").map(function(s){return s.replace(/[^=]+=/, "")})
)

Infinity178 09.06.2015 00:18

супер. а как теперь их разбить?

pb_ 09.06.2015 00:19

В смысле? это уже разбитый массив строк.

Infinity178 09.06.2015 00:23

Прошу прощения уже засыпаю на ходу..
Но
сейчас на выходе: Managers,editorManager,13
как теперь их занести в data : { key : Managers, type : editorManager, id : 13 },

Octane 09.06.2015 00:25

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

pb_ 09.06.2015 00:28

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.