我一直没能找到这个,我试图对我来说不是很努力。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