有没有任何方法来获取没有查询string的url?
我有一个URL像http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235
。
我想获取没有查询string的URL: http://localhost/dms/mduserSecurity/UIL/index.php
。
有没有在JavaScript的这个方法? 目前我正在使用document.location.href
,但它返回完整的URL。
试试这个: window.location.href.split('?')[0]
阅读Window.location
和Location
界面:
var url = [location.protocol, '//', location.host, location.pathname].join('');
location.toString().replace(location.search, "")
尝试:
document.location.protocol + '//' + document.location.host + document.location.pathname;
(NB: .host
而不是.hostname
以便在需要的时候也可以包含端口)
var url = window.location.origin + window.location.pathname;
如果你还想删除哈希,试试这个: window.location.href.split(/[?#]/)[0]
只要使用分割(简单的方法)切割string:
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
将Javascriptstring连接在一起(而不是+
):在某些情况下,它避免了types混淆的问题。
这里有两个方法:
<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上看到更多的属性;
这里的大多数答案将在浏览器中很好地工作,但不会与window / window.location不存在的服务器端javascript。 其他一些人也没有考虑到查询string后面的一个片段标识符(#example)的可能性。
我写了一个小组件 ,可以在这两种情况下工作。 如果您想使用它,请随意导入。
你可以使用任意的url或者window.location来调用parseUrl()来使用当前的url。 这将返回一个对象,您可以使用它将您需要的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
此外,这是非破坏性的,并将保存原始查询string到urlObject.query和每个单独的参数到urlObject.params万一你需要使用它们后提取基地的url。