有没有任何方法来获取没有查询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.locationLocation界面:

 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。