首頁 >web前端 >js教程 >如何建立強大的正規表示式來檢測有或沒有「http://」前綴的 URL?

如何建立強大的正規表示式來檢測有或沒有「http://」前綴的 URL?

Linda Hamilton
Linda Hamilton原創
2025-01-05 21:34:41638瀏覽

How to Create a Robust Regular Expression for Detecting URLs with or without

如何建立全面的 URL 正規表示式

正規表示式模式是符合特定文字格式的強大工具。使用正規表示式模式識別 URL 需要一絲不苟,以確保準確檢測。

在您的情況下,嘗試偵測不含「http://」前綴的 URL 時會出現困難。為了解決這個問題,這裡有一個增強的正規表示式模式:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

模式細分:

  • 協議(可選):

    • https?符合“http://”或“https://”(不區分大小寫)。
  • 子域前綴(可選):

    • (www.) 與「www.」相符。子域名前綴。
  • 網域:

    • [-a-zA-Z0-9@:%._ ~#=] {1,256} 符合字母、數字和指定特殊字元的任意組合,最大長度為256 個字元。
  • 頂級網域:

    • 。 [a-zA-Z0-9()] {1,6} 符合頂級域(例如「.com」、「.org」),最大長度為6 個字元。
  • 路徑與查詢字串(選用):

    • b([-a-zA-Z0 - 9()@:%_ .~#?&//=]*) 捕獲任何其他路徑元素URL。

不帶必需協定的替代正規表示式:

[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

此版本刪除了協定比對元件,使其版本適合類似「www.google.com」的網址。

以上是如何建立強大的正規表示式來檢測有或沒有「http://」前綴的 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn