jQuery删除URL问号后面的所有内容

12

我想知道是否可以删除URL中问号后面的所有内容?

http://www.site.com?some_parameters_continue_forever

我可以使用.remove()吗?需要将什么内容放入参数中?

谢谢

4个回答

12

因为浏览器控制着URL,所以当您更改URL时,页面将重新加载。但对于您想要做的事情,在不需要问号后面的内容的页面上输入..

window.location = "http://www.mysite.com" //or whatever your site url is

要动态执行此操作,您可以使用下面的函数,然后使用window.location

function getPathFromUrl(url) {
  return url.split("?")[0];
}

注意: 当您更改网址时,页面将会刷新。


需要注意的一点(即使答案是正确的):在URL中有多个问号是有效的,参见https://dev59.com/RXA85IYBdhLWcg3wJf8Z,因此如果您想要URL字符串的其余部分,则不能“只是”使用`url.split("?")[1];`。 - Adriano
顺便提一下,获取URL字符串的其余部分(包含所有参数)的解决方案是:url.substring( url.indexOf('?')+1 ); - Adriano

6
你可以使用这个简单的正则表达式:
yourUrl.replace(/\?.+/, '')

remove() 是用于 DOM 操作的。


5

试试这段代码:

var url = "http://www.somexample.com?a=b&c=2&d=3";
url = url.substring(0 , url.indexOf('?')+1);

我能否添加更多的字符,而不仅仅是“?”呢?比如说它可以检查“?”或其他字母,比如“&”? - hellomello
我在想,如果替换中没有 ? 而是一个 &,是否可行。我在想是否可能像 url.indexOf('?','&')+1) 这样做。 - hellomello

2

我发布此信息是因为其他解决方案对我无效,以下是在Python 3中可行的方法。

import re

mystring = 'http://www.example.com?some_parameters_continue_forever'
mystring_clean = re.sub(r'\?.*', '', mystring)

print(mystring_clean)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接