如何拆分 url 以获取 JavaScript 中的 url 路径

新手上路,请多包涵

我构建了一个指向不同主机名的 url 路径 www.mysite.com ,例如:

 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/ 以获取 url 路径 needthispath/somepath 在 js 中?有没有更快更清洁的方法来做到这一点?

原文由 nCore 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

第一个解决方案(URL 对象)

URL 对象 可用于解析、构造、规范化、编码 URL 等。

 var url = 'http://www.mymainsite.com/somepath/path2/path3/path4';

var pathname = new URL(url).pathname;

console.log(pathname);

URL 接口表示一个提供用于创建对象 URL 的静态方法的对象。


第二种解决方案(一种黑客攻击)

 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

原文由 Inanc Gumus 发布,翻译遵循 CC BY-SA 4.0 许可协议

为什么不使用拆分功能并从那里开始工作。 split 函数将完全分解您的 URL,您只需要从那里查找倒数第二个和最后一个项目。

这是一个例子:

 var initial_url = 'http://www.mymainsite.com/path/path/needthispath/somepath';
var url = initial_url .split( '/' );

var updated_url= document.location.hostname + '/' + url[ url.length - 2 ] + '/' + url[ url.length - 1 ];

原文由 The Gav Lad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题