"http://something.com:6688/remote/17/26/172"
如果我的值为172,我需要将网址更改为175
"http://something.com:6688/remote/17/26/175"
我怎么能用JavaScript做到这一点?
答案 0 :(得分:18)
var url = "http://something.com:6688/remote/17/26/172"
url = url.replace(/\/[^\/]*$/, '/175')
翻译:找一个斜杠\/
,其后跟任意数字*
的非斜杠字符[^\/]
,后跟字符串$
的结尾。
答案 1 :(得分:2)
Split /
之后的字符串然后更改最后一部分,并按/
重新join:
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);
答案 2 :(得分:2)
用/拆分字符串,删除最后一部分,用/重新加入,然后添加新路径
newurl = url.split('/').slice(0,-1).join('/')+'/175'
答案 3 :(得分:1)
取决于你想做什么。
实际更改浏览器网址
如果您确实想将浏览器推送到其他网址,则必须使用window.location = 'http://example.com/175'
。
更改浏览器网址哈希
如果您只想更改哈希,只需使用window.location.hash
即可。
重复使用链接或类似网址
如果您想引用链接或类似网址,请查看George's answer。
答案 4 :(得分:1)
new URL("175", "http://something.com:6688/remote/17/26/172").href
这也适用于路径,例如
new URL("../27", "http://something.com:6688/remote/17/26/172").href
→"http://something.com:6688/remote/17/27"
new URL("175/1234", "http://something.com:6688/remote/17/26/172").href
→"http://something.com:6688/remote/17/26/175/1234"
new URL("/local/", "http://something.com:6688/remote/17/26/172").href
→
"http://something.com:6688/local/"
有关详细信息,请参见https://developer.mozilla.org/en-US/docs/Web/API/URL/URL。
答案 5 :(得分:0)
在没有页面刷新的情况下,您无法使用javascript实际更改地址栏中显示的URL。如果可能的话,我认为这将代表一个相当大的安全问题。如果您可以使用页面刷新,window.location
是您的最佳选择。
如果您使用的是jQuery,jQuery BBQ插件非常简洁。它为你处理了很多艰苦的工作。
答案 6 :(得分:0)
//替代方式。
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);