通过使用DOM方法而不是正则表达式来解析javascript中的URL是非常简单的。如果使用正则表达式,则代码将更加复杂。在DOM方法中,仅一个函数调用将返回已解析的URL。
在以下示例中,首先创建一个函数,然后使用DOM方法在其内部创建锚标记“ a”。稍后,使用href将提供的URL分配给锚标记。现在,当函数返回URL的部分时,它将尝试返回解析的部分,如输出所示。由于已解析url,因此使用JSON.stringify()方法显示输出。
<html>
<body>
<script>
function URL(url) {
var urlParser = document.createElement('a');
urlParser.href = url;
return {
protocol: urlParser.protocol,
host: urlParser.host,
hostname: urlParser.hostname,
port: urlParser.port,
pathname: urlParser.pathname,
search: urlParser.search,
hash: urlParser.hash
};
}
document.write(JSON.stringify(URL("https://www.youtube.com/watch?v=tNJJSrfKYwQ")));
</script>
</body>
</html>{"protocol":"https:","host":"www.youtube.com","hostname":"www.youtube.com","port":"","pathname":"/watch","search":"?v=tNJJSrfKYwQ","hash":""}