1

我有一个这样的网址

/users/?i=0&p=90

我怎样才能在js中删除部分

? to 90

谁能给我看一些代码?

编辑

我的意思是用 window.location.href 做这个(所以直接在浏览器 url 栏中)

我试过了

function removeParamsFromBrowserURL(){
    document.location.href =  transform(document.location.href.split("?")[0]);
    return document.location.href;
}

我也不想进行重定向,所以只需从 ? 结束

4

5 回答 5

4
function removeParamsFromBrowserURL(){
    return window.location.href.replace(/\?.*/,'');
}
于 2012-05-10T22:07:56.593 回答
2

如果您只想要该/users/部分:

var newLoc = location.href.replace( /\?.+$/, '' );

您还可以拆分字符串,并返回第一部分:

var newLoc = location.href.split("?")[0];

或者您可以将所有内容与问号匹配:

if ( matches = location.href.match( /^(.+)\?/ ) ) {
  alert( matches[1] );
}
于 2012-05-10T22:07:54.463 回答
1

一种方法是leftside = whole.split('?')[0],假设没有?在所需的左侧

http://jsfiddle.net/wjG5U/1/

这将从 url 中删除 ?... 并自动将浏览器重新加载到剥离的 url(无法使其在 JSFiddle 中工作)我将以下代码放在一个文件中,然后手动放置一些 ?a=b 内容然后单击按钮。

<html>
  <head>
    <script type="text/javascript">
function strip() {
  whole=document.location.href;
  leftside = whole.split('?')[0];
  document.location.href=leftside;
}

    </script>
  </head>
  <body>
    <button onclick="strip()">Click</button>
  </body>
</html>
于 2012-05-10T22:08:05.480 回答
0

如果您只想要 /users/ 部分,那么您可以将其子串化:

var url = users/?i=0&p=90;
var urlWithNoParams = url.substring(0, url.indexOf('?') - 1);

这会将字符串从索引 0 提取到 '?' 之前的字符。特点。

于 2012-05-10T22:11:10.563 回答
0

无论我使用哪个 url 重定向,我都遇到了 #page 来回引用粘在 url 中的问题。这解决了一切。

我使用这样的脚本:

<script type="text/javascript">

function strip() {
  whole=document.location.href;
  leftside = whole.split('#')[0];
  document.location.href=leftside;
}
</script>
<a onclick="strip()" href="http://[mysite]/hent.asp" >Click here</a>
于 2012-12-10T12:53:10.477 回答