Javascript 如何更改url路径的最后一个组件?

Javascript 如何更改url路径的最后一个组件?,javascript,Javascript,如果我有值172,我需要将url更改为175 "http://something.com:6688/remote/17/26/172" 如何在JavaScript中做到这一点?取决于您想做什么 实际更改浏览器URL: 如果您确实想将浏览器推送到另一个URL,则必须使用window.location=http://example.com/175“ 更改浏览器URL哈希值 如果您只想更改哈希,只需使用window.location.hash 在链接或类似链接上重复使用URL 如果您想在链接或类似链

如果我有值172,我需要将url更改为175

"http://something.com:6688/remote/17/26/172"

如何在JavaScript中做到这一点?

取决于您想做什么

实际更改浏览器URL:
如果您确实想将浏览器推送到另一个URL,则必须使用
window.location=http://example.com/175“

更改浏览器URL哈希值
如果您只想更改哈希,只需使用
window.location.hash

在链接或类似链接上重复使用URL
如果您想在链接或类似链接中引用URL,请查看

翻译:找到一个斜杠
\/
,后面跟任意数量的
*
非斜杠字符
[^\/]
,后面跟字符串的结尾
$
//code>删除字符串,然后更改最后一部分,按
//code>删除:

var url = "http://something.com:6688/remote/17/26/172"
url = url.replace(/\/[^\/]*$/, '/175')

如果不刷新页面,就无法使用javascript更改地址栏中显示的URL。如果可能的话,我认为这将是一个相当重要的安全问题。如果您可以接受页面刷新,
window.location
是您的最佳选择


如果您使用的是jQuery,那么这个插件就非常简洁。它为您处理了大量繁重的工作。

按/拆分字符串,删除最后一部分,按/重新连接,然后添加新路径

var newnumber = 175;
var url = "http://something.com:6688/remote/17/26/172";
var segements = url.split("/");
segements[segements.length - 1] = "" + newnumber;
var newurl = segements.join("/");
alert(newurl); 
//另一种方式

newurl = url.split('/').slice(0,-1).join('/')+'/175'
新URL(“175”http://something.com:6688/remote/17/26/172“”。href

这也适用于路径,例如

新URL(“../27”http://something.com:6688/remote/17/26/172“”。href
→ <代码>”http://something.com:6688/remote/17/27“

新URL(“175/1234”http://something.com:6688/remote/17/26/172“”。href
→ <代码>”http://something.com:6688/remote/17/26/175/1234“

新URL(“/local/”,“http://something.com:6688/remote/17/26/172“”。href
”http://something.com:6688/local/“


有关详细信息,请参见。

如果17,26是静态值,那么它非常简单,您可以使用indexOf(17.26)并返回一个值,然后执行substirn(position)GeorgeBailey的解决方案非常简洁,即使值发生变化,将regexp转换为英语也会有效——找到一个字符串:a/后面不跟a/后面跟任意数量的字符,后面跟字符串的结尾。将其替换为“/175”。一个优秀的regexp解决方案。为了在JS regexp中使用/,它被转义为\/I添加了我自己的解释,这稍微更准确一些。我还将在结尾之前添加一个可选的/,这样它在…/172和…/172中都可以工作:/\/[^\/]*\/?$/不介意,但我认为regex replace对于这种模式可能非常简单replaces@gov,我同意。I regex更简单,是一个更好的解决方案。我的方法的唯一优点是可读性
newurl = url.split('/').slice(0,-1).join('/')+'/175'
var str =  window.location.href;
var lastIndex = str.lastIndexOf("/");
var path = str.substring(0, lastIndex);
var new_path = path + "/new_path";
window.location.assign(new_path);