首页  >  文章  >  web前端  >  如何从没有正则表达式的 URL 中提取主机名?

如何从没有正则表达式的 URL 中提取主机名?

Barbara Streisand
Barbara Streisand原创
2024-11-12 19:01:02188浏览

How to Extract Hostname from a URL Without Regular Expressions?

不使用正则表达式提取主机名

问题陈述

匹配 URL 的主机名而不捕获整个 URL 是一项常见任务。给定包含多个 URL 的文本字符串,目标是仅提取解析到特定域(例如 example.com)的两个实例的主机名。

替代解决方案

而不是利用正则表达式有时效率低下,可以采用另一种方法:

var tmp = document.createElement('a');
tmp.href = "http://www.example.com/12xy45";

此方法利用了一个隐藏的优势。通过创建临时锚元素并为其分配 URL 字符串,我们可以访问主机名和主机属性,这提供了不带 URL 路径或协议的主机名组件。

// tmp.hostname will now contain 'www.example.com'
// tmp.host will now contain hostname and port 'www.example.com:80'

将此功能封装成一个方便的函数:

function url_domain(data) {
  var a = document.createElement('a');
  a.href = data;
  return a.hostname;
}

通过提供 URL 字符串作为此函数的参数,我们获得主机名组件作为结果。

以上是如何从没有正则表达式的 URL 中提取主机名?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn