我使用这个js代码的主机从一个字符串匹配:在没有协议时匹配字符串上的主机名://?
url.match(/:\/\/(www\.)?(.[^/:]+)/);
这工作时,URL有协议://开头。例如:
这工作得很好:
var url = "http://domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
但这并不:
var url = "domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
我曾尝试:
url.match(/(:\/\/)?(www\.)?(.[^/:]+)/);
而细的主机名时,它匹配不包含protocol://,但是当它包含它时,它只返回协议而不是主机名。
如何在不包含域的情况下匹配域?
+1小记:你应该告诉他激活忽略大小写,最后转义'/',或许增加对[IPv6]的支持(http://msdn.microsoft .com/en-us/library/windows/desktop/ms740593(v = vs.85).aspx)地址(好的......我在这里exxagerating)....我通常会试图保持一致。如果您在某处使用小写字母,则始终使用小写字母。啊,你把他的端口(他的一个接受它)的“选项”带走了...而且你和他都不支持'http:// username:password @ site' – xanatos