我构建了一个指向不同主机名 www.mysite.com
的 url 路径,例如:
var myMainSite = 'www.mymainsite.com' + '/somepath';
所以这相当于 www.mymainsite.com/path/path/needthispath/somepath
。
我现在的做法就像下面的代码,这在 console.log
中为我提供了一堆 url 索引。
var splitUrl = myMainSite.split('/');
console.log
看起来像:
0: http://
1: www.
2: mysite.com
3: path
4: path
5: needthispath
6: somepath
我像 splitUrl[5]+'/'+splitUrl[6]
一样连接它们,它看起来一点也不漂亮。
所以我的问题是如何拆分/删除 url 位置 http://www.mymainsite.com/
以获取 js 中的 url 路径 needthispath/somepath
?是否有更快更简洁的方法来执行此操作?
最佳答案
第一个解决方案(URL对象)
URL 对象 可用于解析、构造、规范化、编码 URL 等。
var url = 'http://www.mymainsite.com/somepath/path2/path3/path4';
var pathname = new URL(url).pathname;
console.log(pathname);
The URL interface represents an object providing static methods used for creating object URLs.
Browser support在 2017 年相当不错(~ 90% 但不是 IE11 或以下版本)
第二种解决方案(一种hack)
var urlHack = document.createElement('a');
urlHack.href = 'http://www.mymainsite.com/somepath/path2/path3/path4';
console.log(urlHack.pathname);
// you can even call this object with these properties:
// protocol, host, hostname, port, pathname, hash, search, origin
关于javascript - 如何拆分 url 以获取 JavaScript 中的 url 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334400/