簡體   English   中英

當URL可能包含或不包含HTTP和WWW時,URL的JavaScript正則表達式

[英]JavaScript Regex for URL when the URL may or may not contain HTTP and WWW

我正在使用JavaScript regex來檢查URL。

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

我用這個正則表達式向Twitter發送消息。 會發生什么是確保URL包含WWW和/或HTTP。

但問題是如果URL就像Guaridan.com.uk Twitter將其視為URL。

那么我如何修改我的正則表達式,它不會檢查HTTP或WWW,這意味着如果它存在,那么它將不會產生任何影響。

所以它會匹配My.co.comdummy.com.in

用於www和http URL格式的jQuery正則表達式。

接受www以及http URL的正則表達式如下:

var pattern = /(?:https?:\/\/)?(?:www\.)?(?:https?:\/\/)?(?:www\.)(?:https?:\/\/)?(?:www\.)?(\/\S*)?/;

接受wwwhttpabc.com的正則表達式如下:

var pattern = ([\d\w]+?:\/\/)?([\w\d\.\-]+)(\.\w+)(:\d{1,5})?(\/\S*)?

如果您只想匹配域名,則必須匹配幾乎任何單詞加“。”,“_”和“ - ”符號。 一種方法可能至少匹配根域(.com,.net,.us,.co.uk,.es,.fr ......等),但列表將是巨大的。 您可能希望只匹配具有點分隔單詞的任何內容,而不是確定它將成為域,但您可能嘗試連接到它。

這個正則表達式: ([\\d\\w]+?:\\/\\/)?([\\w\\d\\.\\-]+)(\\.\\w+)(:\\d{1,5})?(\\/\\S*)?

將匹配:

  • 第1組作為協議://(可選)
  • 第2組concat組3作為域
  • 第3組是頂級域名
  • 第4組為:端口(可選)
  • 第5組作為查詢(可選)

嘗試這個...

/^http:\\/\\/|(www\\.)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[az]{2,5}(:[0-9]{1,5})?(\\/.*)?$/

它正是人們想要的。

使用或不使用http://, https://,www

暫無
暫無

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

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