[英]Regex Expression to match URLs
我有以下正則表達式可檢測URL:
/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig
但是,它不會檢測到諸如www.google.ca
和tlk.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.ca
和tlk.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.