2011-10-06 3 views
2

У меня есть несколько URL, что мне нужно, чтобы получить определенную часть последней части URIПолучение конкретной части URL с помощью Javascript

Если у меня есть URL www.test.co/index.php/government-printer-sales.html Мне нужно только, чтобы получить government от URL. Все URL, находятся в той же структуре, так что если у меня есть www.test.co/index.php/management-fees.html мне нужно получить слово management

Я попытался следующий

var str = document.URL.split('/'); 
var type = str[5].split('-',1); 

, который дает мне какой-то результат, но я уверен, что есть лучший способ , Если есть в любом случае я могу получить это от Eiter MooTools или просто Javascript

+0

Это настоящий URL? Если есть только две слэши, то почему вы получаете доступ к индексу '5' разделенной строки? – pimvdb

+0

@pimvdb - просто пример, может быть больше двух делений – Roland

ответ

3

Вы можете использовать регулярные выражения, чтобы вытащить строку после последней косой черты и перед первым тире:

var regex = /\/([^/\-]+)[^/]*$/; 
var matches = regex.exec('www.test.co/index.php/government-printer-sales.html'); 
var type = matches[1]; // government 
3

Вы можете посмотреть here а затем here, а затем проверить этот код:

var myString = "www.test.co/index.php/government-printer-sales.html"; 
var myRegexp = /(www.test.co\/index.php\/)(\w+)-(.)*/g; 
var match = myRegexp.exec(myString); 
alert(match); 
3

сращивания является прекрасной функцией переходящая в виде отрицательного числа в качестве первого аргумента будет создать новый массив с элементами, считая с конца массива.

document.URL 
> "http://stackoverflow.com/questions/7671441/getting-a-specific-part-of-a-url-using-javascript" 

document.URL.split('/').splice(-1)[0].split('-')[0] 
> "getting" 

Это похоже на питона список сращивания LST [: - 1]

2

Попробуйте это:

var type = window.location.pathname.match(/index.php\/([^-]+)(?:-)/)[1]; 

Он ищет любые символы следующих index.php/ за исключением дефиса, но затем один дефис и выбор значения между ними.

Смежные вопросы