Получение определенной части URL с использованием Javascript
У меня есть несколько URL-адресов, которые мне нужны, чтобы получить определенную часть последней части URI
Если у меня есть 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
4 ответа
Вы можете использовать регулярное выражение, чтобы вытащить строку после последней косой черты и перед первой чертой:
var regex = /\/([^/\-]+)[^/]*$/;
var matches = regex.exec('www.test.co/index.php/government-printer-sales.html');
var type = matches[1]; // government
Splice - отличная функция, передающая отрицательное число, так как первый аргумент создаст новый массив с элементами, считающими с конца массива.
document.URL
> "http://stackru.com/questions/7671441/getting-a-specific-part-of-a-url-using-javascript"
document.URL.split('/').splice(-1)[0].split('-')[0]
> "getting"
Это похоже на сплайсинг списка Python lst[:-1]
Попробуй это:
var type = window.location.pathname.match(/index.php\/([^-]+)(?:-)/)[1];
Он ищет любые символы, следующие index.php/
исключая дефис, но за которым следует один дефис и извлекает значение между ними.