У меня есть URL как http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235
.
Я хочу получить URL-адрес без строки запроса: http://localhost/dms/mduserSecurity/UIL/index.php
.
Есть ли какой-либо метод для этого в JavaScript? В настоящее время я использую document.location.href
, но он возвращает полный URL.
Ответ 1
Попробуйте следующее: window.location.href.split('?')[0]
Ответ 2
Читайте о Window.location
и Location
интерфейс:
var url = [location.protocol, '//', location.host, location.pathname].join('');
Ответ 3
location.toString().replace(location.search, "")
Ответ 4
var url = window.location.origin + window.location.pathname;
Ответ 5
Если вы также хотите удалить хэш, попробуйте следующее: window.location.href.split(/[?#]/)[0]
Ответ 6
Try:
document.location.protocol + '//' +
document.location.host +
document.location.pathname;
(NB: .host
, а не .hostname
, чтобы порт также включался, если это необходимо)
Ответ 7
просто вырезаем строку с помощью split (простой способ):
var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);
Ответ 8
Чтобы получить каждую часть URL-адреса, кроме запроса:
var url = (location.origin).concat(location.pathname).concat(location.hash);
Обратите внимание, что это также включает хеш, если он есть (я знаю, что нет хеша в вашем примере URL, но я включил этот аспект для полноты). Чтобы исключить хэш, просто исключите .concat(location.hash)
.
Лучше использовать concat
для объединения строк Javascript вместе (а не +
): в некоторых ситуациях он избегает таких проблем, как путаница типов.
Ответ 9
Вот два метода:
<script type="text/javascript">
var s="http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu
=true&pcode=1235";
var st=s.substring(0, s.indexOf("?"));
alert(st);
alert(s.replace(/\?.*/,''));
</script>
Ответ 10
Как насчет этого: location.href.slice(0, - ((location.search + location.hash).length))
Ответ 11
Использовать свойства window.location
var loc = window.location;
var withoutQuery = loc.hostname + loc.pathname;
var includingProtocol = loc.protocol + "//" + loc.hostname + loc.pathname;
Вы можете увидеть больше свойств на https://developer.mozilla.org/en/DOM/window.location
Ответ 12
Большинство ответов здесь отлично работают в браузере, но не на стороне сервера javascript, где window/window.location не существует. Некоторые другие также не учитывают возможность идентификатора фрагмента (# пример) после строки запроса.
Я написал небольшой компонент, который будет работать в обеих этих ситуациях. Не стесняйтесь импортировать его, если вы хотите его использовать.
Вы можете вызвать parseUrl() с произвольным URL или окном .location для использования текущего URL-адреса. Это вернет объект, который вы можете использовать, чтобы объединить части, которые вам нужны.
Пример:
var url = 'http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235';
var urlObject = parseUrl(url);
var newUrl = urlObject.protocol + '//' + urlObject.hostname + urlObject.path + urlObject.hash;
Это установит newUrl в:
http://localhost/dms/mduserSecurity/UIL/index.php
Кроме того, это не разрушительно и сохранит исходную строку запроса в urlObject.query и каждый отдельный параметр в urlObject.params, если вам нужно использовать их после извлечения базового url.
Ответ 13
Вот подход с использованием интерфейса URL():
new URL(location.pathname, location.href).href