在ES6中解析URL的最佳方法

时间:2018-07-13 15:11:12

标签: javascript url npm ecmascript-6

我已经看到一些有关该主题的传奇问题,例如:how to parse a url

但是几年过去了,情况发生了变化。我能找到的问题的答案已经过时了。 我不想通过正则表达式或某些黑客(例如将HTML节点创建为解析助手)来解析URL。我想要一些灵活的方法来从URL返回带有所有必需数据的对象。 我相信,有一些新的内置方法可以执行此操作,或者有一些新的革命性惊人方法和用于此目的的简单ES6库。

您能给我一些建议吗?

2 个答案:

答案 0 :(得分:4)

我认为您正在寻找这样的Web API URL() constructor

const myTestURLString = "https://www.youtube.com:8080/watch?v=YaXXXXkt0Y&id=123";

const myURLObj = new URL(myTestURLString );

console.log(myURLObj.protocol);
console.log(myURLObj.host);
console.log(myURLObj.hostname);
console.log(myURLObj.pathname);
console.log(myURLObj.search);
console.log(myURLObj.searchParams.get('v'));
console.log(myURLObj.searchParams.get('id'));

答案 1 :(得分:1)

ES6是语言规范的一部分,而不是JavaScript的任何特定框架。因此,您不会在该语言中找到类似URL.parse()的内容。

您要查找的API是应用程序(例如浏览器或Node.js)的主机的一部分。在浏览器中,有一个URL界面:https://developer.mozilla.org/en-US/docs/Web/API/URL