Javascript 如何更改url路径的最后一个组件?
如果我有值172,我需要将url更改为175Javascript 如何更改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 如果您想在链接或类似链
"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);