Javascript 删除散列并加载URL减去散列

Javascript 删除散列并加载URL减去散列,javascript,Javascript,在此处输入code此JavaScript片段从URL中删除/#/和/everything/after,并重新加载页面 var loc = window.location.href, index = loc.indexOf('#'); if (index > 0) { window.location = loc.substring(0, index); } 因此,类似这样的情况: http://www.somesite.com/#/somepage http://www.s

在此处输入code
此JavaScript片段从URL中删除
/#/和/everything/after
,并重新加载页面

var loc = window.location.href,
    index = loc.indexOf('#');

if (index > 0) {
  window.location = loc.substring(0, index);
}
因此,类似这样的情况:

http://www.somesite.com/#/somepage
http://www.somesite.com/somepage
重新加载,如下所示:

http://www.somesite.com
如何修改代码段,使其仅删除此部分:
#/
,但保留其后面的所有内容,并在包含
#/
前后内容的url处加载页面,如下所示:

http://www.somesite.com/#/somepage
http://www.somesite.com/somepage
你可以

window.location = window.location.href.replace(/\/#\//, '/');
如果您只想在出现#时重新加载,您可以这样做

if (window.location.href.indexOf('/#/')>=0) {
    window.location = window.location.href.replace(/\/#\//, '/');
}
编辑:要在最后一个标记前添加#,可以执行以下操作:

var href2 = href.replace(/([^\/]+\/?)$/, '#/$1')
示例:

"http://www.somesite.com/somepage?a=b" -> "http://www.somesite.com/#/somepage?a=b"
"http://www.somesite.com/somepage/" -> "http://www.somesite.com/#/somepage/"
你可以用


window.location.href.replace(“#/”,“”)

那么为什么还要麻烦使用正则表达式呢?出于某种原因,它会将浏览器发送到一个循环中。它从不打开页面,但一直在尝试。@Ian没有正则表达式可以做任何事情吗?该死…@哦,我忘了。无所谓……:)@Keithroles如果每次加载页面时都要执行此重新加载代码,这是完全正常的。你的目标是什么?你想只在有#的情况下重新加载吗?这有什么区别?如果对你来说是微不足道的,@Rakkun,我会感谢你的帮助。我刚刚尝试了dystroy提出的建议,因为他很好地提供了它,但由于某种原因它不起作用。范围很窄,@DerekHenderson。你能向我解释一下吗,@Derek,实际上应该在代码中放入什么,而不是
“对象或字符串”、“标题”、“新url”
——它为我指明了正确的方向,但我不知道如何使用它。