Парсинг URI на javascript

Рейтинг: 0Ответов: 1Опубликовано: 14.01.2015

Есть урл:

http://example.com/part1/part2/partN/?param1=100

Собственно, не знаю, как выцепить в массив part1, part2, partN, т.е. всё, что между слешами. Не считая адреса сайта, конечно.

Подскажите, люди добрые, как быть.

Ответы

▲ 4Принят

Если из адресной строки, то можно так:

var parts = location.pathname.match(/([a-z0-9_-]+)/ig);
console.log(parts); // ["part1", "part2", "partN"]

Если URI это строка, то так:

var parser = document.createElement('a');
parser.href = 'http://example.com/part1/part2/partN/?param1=100';

var parts = parser.pathname.match(/([a-z0-9_-]+)/ig);
console.log(parts); // ["part1", "part2", "partN"]

UPD Даже лучше разбивать на части так:

var parts = parser.pathname.split('/').filter(function(el) {return el.length != 0});