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

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

Barbara Streisand
发布: 2024-11-12 19:01:02
原创
226 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板