繁体   English   中英

JavaScript-将URL解析为主机名

[英]JavaScript - Parsing a URL into hostname

我正在寻找一种将给定URL解析为主机名,端口和subdomian的方法。 我从这里得到了这样的代码: 如何将URL解析为javascript中的主机名和路径?

var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";

parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port;     // => "3000"
parser.pathname; // => "/pathname/"
parser.search;   // => "?search=test"
parser.hash;     // => "#hash"
parser.host;     // => "example.com:3000"

但是这里给“ parser.href”一个URL。 取而代之的是,我有一个用户输入的名为'q'的JavaScirpt变量。 我需要将变量“ q”的值发送到parser.href中。 我试图简单地编写为parser.href = q,但这没有用。

然后,我尝试将上面的代码实现为一个函数模型,通过该函数模型,我将变量q传递给了它,但是那也不起作用。 这是函数:

  function parseUrl(url) {
        var parser = document.createElement('a');
        parser.href = url;
      return(parser.hostname);
}

var host = parseUrl(q);

我以为执行完该函数后,变量“ host”将具有从该函数返回的主机名,但也无法正常工作。 有人可以告诉我如何修改它以使其正常工作吗?

非常感谢

它已经可以了!

查看这个小提琴

function parseUrl(url) {
    var parser = document.createElement('a');
    parser.href = url;
  return(parser.hostname);
}

var host = parseUrl('http://example.com:3000/pathname/?search=test#hash');
document.write(host);

它对我有用。

http://jsfiddle.net/rFYYv/

   function parseUrl(url) {
        var parser = document.createElement('a');
        parser.href = url;
      return(parser.hostname);
   }

var output = document.getElementById('output');
var input = document.getElementById('input');

input.onkeyup = function(e) {
    output.innerHTML = parseUrl(input.value);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM