Regex получит первое слово после слэша в URL-адресе

Мне нужно получить первое слово после слэша в URL-адресе в javascript, я предполагаю, что использование регулярного выражения было бы идеальным.

Вот идея, по которой могут выглядеть URL-адреса:

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

У меня здесь полная потеря, оцените помощь.

Ответы

Ответ 1

JavaScript с RegEx. Это будет соответствовать чему-либо после первого/пока мы не столкнемся с другим /.

window.location.pathname.replace(/^\/([^\/]*).*$/, '$1');

Ответ 2

Non-регулярное выражение.

var link = document.location.href.split('/');
alert(link[3]);

Ответ 3

Взрыв url в javascript можно сделать, используя официальное rfc2396 regex:

var url = "http://www.domain.com/path/to/something?query#fragment";
var exp = url.split(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);

Это даст вам:

["", "http:", "http", "//www.domain.com", "www.domain.com", "/path/to/something", "?query", "query", "#fragment", "fragment", ""]

Если вы можете, в вашем случае, легко получить путь:

var firstPortion = exp[5].split("/")[1]

Ответ 4

Попробуйте:

var url = 'http://mysite.com/section-with-dashes/';
var section = url.match(/^http[s]?:\/\/.*?\/([a-zA-Z-_]+).*$/)[0];

Ответ 5

Мое регулярное выражение довольно плохое, поэтому я буду импровизировать с менее эффективным решением: P

// The first part is to ensure you can handle both URLs with the http:// and those without

x = window.location.href.split("http:\/\/")
x = x[x.length-1];
x = x.split("\/")[1]; //Result is in x

Ответ 6

Вот быстрый способ получить это в javascript

var urlPath = window.location.pathname.split("/");
if (urlPath.length > 1) {
  var first_part = urlPath[1];
  alert(first_part); 
}

Ответ 7

$url = 'http://mysite.com/section/subsection';

$path = parse_url($url, PHP_URL_PATH);

$components = explode('/', $path);

$first_part = $components[0];