簡體   English   中英

正則表達式來匹配URL

[英]Regex Expression to match URLs

我有以下正則表達式可檢測URL:

/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig

但是,它不會檢測到諸如www.google.catlk.tc/ApSE網址。 是否存在可以檢測到這些URL的正則表達式? 我正在使用javascript。

編輯:

試試這個:

((\b(https?|ftp|file):\/\/)?[-A-Z0-9+&@#\/%?=~_|!:,.;]+\.[-A-Z0-9+&@#\/%=~_|]+)

它使方案成為可選方案,以支持示例中顯示的兩種情況。

用於URL的IETF RFC-2396 為解析URL提供了以下正則表達式:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?

將捕獲組映射到以下組件:

scheme    = $2
authority = $4
path      = $5
query     = $7
fragment  = $9

請注意,您提供的示例www.google.catlk.tc/ApSE不是“有效” URL,但我相信無論如何它們都將與正則表達式匹配。

此表達式可以滿足您的需求。 這不是此正則表達式匹配的有效URL,但符合您的要求:

/(\b(https?|ftp|file):\/\/|\bwww\.[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])|([\S]+\.([a-z]{2,})+?\/[\S]+)/gi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM