我一直沒能找到這個,我試圖對我來說不是很努力。Javascript正則表達式,以匹配完全合格的域名,沒有協議,可選子域
我想只匹配結構域:
- 不包含協議(HTTP,HTTPS,FTP)
- 任選包括子域
- 沒有開始連字符但可以包含連
實施例的結構域將匹配:
- domain.com
- example.domain.com
- example.domain-hyphen.com
- www.domain.com
- example.museum
實施例的結構域將不是匹配:
- http://example.com
- subdomain.-example.com
- example.com/parameter
- example.com?anything
- www.subdomain.domain.com
目前我有什麼:
/^(?!:\/\/)(^[a-zA-Z0-9])?.[a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i
它不符合協議,允許連字符在域內,不允許在t後跟蹤字符他頂級域名,並允許一個子域名(但只有1個字符)。
我仍然需要允許任何長度的子域,不允許www.subdomain.domain.com,並且不允許使用前導連字符。
你如何定義 「域」 呢?每個字都至少有一個點? – Bergi 2013-05-09 14:13:29
不知道我明白。域名位於TLD之前,只能包含字母,數字和連字符。 – 2013-05-09 14:15:06
那麼,這是我的(失敗)嘗試允許子域名。基本上這就是我卡住的地方,也是我添加到這個正則表達式的最後一件事。 – 2013-05-09 14:17:00