JavaScript - 将 URL 解析为主机名

标签 javascript parsing

我正在寻找一种将给定网址解析为主机名、端口和子域名的方法。我从这里得到了这样的代码:How do I parse a URL into hostname and path in 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”将具有从函数返回的主机名,但这也不起作用。有人可以告诉我如何修改它才能正常工作吗?

非常感谢

最佳答案

已经可以使用了!

结账 this fiddle

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);

关于JavaScript - 将 URL 解析为主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913887/

相关文章:

javascript - 我如何验证包含表达式/条件的字符串

javascript - 递归构建器嵌套问题

javascript - jQuery - 替换所有选项名称中的空格

javascript - jQuery getJSON 和调用文件在 IE9 中不起作用

c++ - 解析输入文件以创建有向图 C++

c++ - 优化弹性字符串文字解析

javascript - 获取 JavaScript 表单总量

java - Jsoup 删除嵌套标签但保留文本

Ruby:为什么等号在文字正则表达式中会导致解析错误?

c - 在 C 中将 char 指针类型转换为 float