JavaScript字串中URL的檢測並轉換為連結

語言: CN / TW / HK
有時,我們必須在 JavaScript 字串中查詢 URL。

在本文中,我們將瞭解如何在 JavaScript 字串中查詢 URL 並將它們轉換為連結。

我們可以建立自己的函式,使用正則表示式來查詢 URL。

JavaScript字串中URL的檢測並轉換為連結JavaScript字串中URL的檢測並轉換為連結

例如,我們可以這樣寫:

const urlify = (text) => { 
  const urlRegex = /(https?:\/\/[^\s]+)/g; 
  return text.replace(urlRegex, (url) => { 
    return `<a href="${url}>${url}</a>`; 
  }) 
} 
const text = 'Find me at http://www.example.com and also at http://stackoverflow.com'; 
const html = urlify(text); 
console.log(html)

我們建立了接受 text 字串的 urlify 函式。

在函式中,我們優化了 urlRegex 變數,該變數具有用於匹配url的regex。

我們檢查 http 或 https 。

然後我們查詢斜槓和文字。

正則表示式末尾的 g 標誌讓我們可以搜尋字串中的所有 URL。

然後我們用 urlRegex 呼叫 text.replace 並在回撥中返回一個帶有匹配 url 的字串。

因此,當我們用 text 呼叫 urlify 時,我們得到:

'Find me at <a href="http://www.example.com>http://www.example.com</a> and also at <a href="http://stackoverflow.com>http://stackoverflow.com</a>'

我們可以使用更復雜的正則表示式使 URL 搜尋更精確。

例如,我們可以這樣寫:

const urlify = (text) => { 
  const urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
  return text.replace(urlRegex, (url) => { 
    return `<a href="${url}>${url}</a>`; 
  }) 
} 
const text = 'Find me at http://www.example.com and also at http://stackoverflow.com'; 
const html = urlify(text); 
console.log(html)

我們搜尋 http、https、ftp 和檔案url。

我們還在模式中包含 : 、字母、與號和下劃線。

本文地址:https://www.linuxprobe.com/javascript-url-urlregex.html