Есть ли способ получить URL-адрес без строки запроса?


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

11 200

11 ответов:

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

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

var url = [location.protocol, '//', location.host, location.pathname].join('');
location.toString().replace(location.search, "")
var url = window.location.origin + window.location.pathname;

Попробуйте:

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

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

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

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

var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);

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

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

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

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

<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>

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

Используйте свойства 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