2012-07-16 93 views

回答

3

你可以使用这个简单的正则表达式:

yourUrl.replace(/\?.+/, '') 

reomve()是DOM的东西。

4

试试这个片断:

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

如果我可以添加更多不仅仅是'?',比如说会检查'?'还是另一个字母,比如'&'? – hellomello 2012-07-17 04:43:02

+0

这将始终匹配URL – amd 2012-07-17 06:06:17

+0

中的第一个问号,我想知道如果替换中没有'?',而是它是'&'而不是。我想知道是否有可能做这样的事情,如'url.indexOf('?','&')+ 1)' – hellomello 2012-07-17 20:13:51

9

由于网址是由浏览器当您更改网址的页面将重新加载控制。还在为你想做的事,你在哪里不需要?马克型后的东西页..什么

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

要动态地做到这一点,你可以用下面的函数,然后用window.location

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

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

+0

有一点需要注意(即使答案是正确的):是的,它是有效的一个URL中有多个问号,请参阅http://stackoverflow.com/questions/2924160/is-it-valid-to-have-more-than-one-question-mark-in-a-url,所以如果你想要其余的url字符串,你不能“只”使用'url.split(“?”)[1];' – 2014-10-30 14:13:30

+0

顺便说一句,解决方案来获得剩余的url字符串(包含所有参数)将是:' url.substring(url.indexOf('?')+ 1);' – 2014-10-30 14:28:39

+0

这里是一个快速现场演示http://jsbin.com/xikufatohi/1/edit?js,console – 2014-10-30 14:43:04