Есть ли способ получить URL без строки запроса? - PullRequest
231 голосов
/ 28 апреля 2011

У меня есть 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.

Ответы [ 12 ]

347 голосов
/ 28 апреля 2011

Читать о Window.location и интерфейсе Location:

var url = [location.protocol, '//', location.host, location.pathname].join('');
292 голосов
/ 28 апреля 2011

Попробуйте это: window.location.href.split('?')[0]

29 голосов
/ 28 апреля 2011
location.toString().replace(location.search, "")
8 голосов
/ 07 марта 2013
var url = window.location.origin + window.location.pathname;
7 голосов
/ 14 января 2014

Если вы также хотите удалить хеш, попробуйте следующее: window.location.href.split(/[?#]/)[0]

5 голосов
/ 28 апреля 2011

Попробуйте:

document.location.protocol + '//' +
document.location.host +
document.location.pathname;

(примечание: .host, а не .hostname, поэтому порт также включается при необходимости)

3 голосов
/ 28 апреля 2011

просто обрежьте строку, используя split (простой способ):

var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);
2 голосов
/ 17 марта 2015

Чтобы получить каждую часть URL-адреса, кроме запроса:

var url = (location.origin).concat(location.pathname).concat(location.hash);

Обратите внимание, что это включает и хэш, если он есть (я знаю, что в вашем хэше нет хэша).пример URL, но я включил этот аспект для полноты).Чтобы исключить хеш, просто исключите .concat(location.hash).

Лучше использовать concat для объединения строк Javascript (а не +): в некоторых ситуациях избегаются такие проблемы, как путаница типов.1010 *

1 голос
/ 01 мая 2017

Как насчет этого: location.href.slice(0, - ((location.search + location.hash).length))

1 голос
/ 28 апреля 2011

Вот два метода:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...