首頁  >  文章  >  web前端  >  如何從沒有正規表示式的 URL 中提取主機名稱?

如何從沒有正規表示式的 URL 中提取主機名稱?

Barbara Streisand
Barbara Streisand原創
2024-11-12 19:01:02165瀏覽

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