您目前的程式碼無法符合缺少「http://」前綴的裸 URL。為了解決這個問題,請考慮採用全面的正規表示式:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
此增強型表達式包括以下功能:
對於那些在匹配中不需要HTTP 協議的用戶,可以使用替代表達式:
[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
要演示這些表達式的功能,請查看在線測試工具: http://regexr.com?37i6s(對於第一個表達式)或http://regexr.com/3e6m0(對於限制較少的表達式)。
這是一個使用更全面的正規表示式的 JavaScript 實作範例:
const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi; const regex = new RegExp(expression); const t = 'www.google.com'; if (t.match(regex)) { alert("Successful match"); } else { alert("No match"); }
以上是如何使用正規表示式檢測 URL(包括裸 URL)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!