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