Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Распарсивание урла (https://javascript.ru/forum/misc/33694-rasparsivanie-urla.html)

ololosh 04.12.2012 00:03

Распарсивание урла
 
Нужно распарсить урл так, что бы получить объект вида
имя_гет_параметра: значение_гет_параметра
Например для урла /forum/newthread.php?do=newthread&f=3
надо на выходе получить что-то типа
obj = {
do: newthread,
f: 3
}

И все было бы не сложно, но я не представляю как без ругулярки (одним split тут не обойтись) разобрать это дело.

А с другой стороны...может в современных браузерах уже есть такой метод, просто я о нём не знаю. Есть?
Если нету, помогите написать. Хотя бы регулярку.

ruslan_mart 04.12.2012 06:54

var Loc = location.search.substr(1);
Loc = Loc.split('&');

for(i=0;i<Loc.length;i++)
{
Loc[i] = Loc[i].split('=');
alert(Loc[i][0]+','+Loc[i][1]);
}

pikko 04.12.2012 15:25

function parseURL ( url ) {
	var re	= /([^?=&]+)=([^?=&]+)/gi;
	var obj	= {};
	while ( ( curr = re.exec( url ) ) != null ) {
		obj[curr[1]] = curr[2];
	}
	return obj
}

var myUrl	= '/forum/newthread.php?do=newthread&f=3';

// вызывать так:
var obj = parseURL ( myUrl );


в obj то что просили ;)


Часовой пояс GMT +3, время: 23:46.