我使用此 js 代码来匹配字符串中的主机名:
url.match(/:\/\/(www\.)?(.[^/:]+)/);
当 url 以 protocol://开头时,此方法有效。例如:
这工作正常:
var url = "http://domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
但这不是:
var url = "domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
我已经尝试过:
url.match(/(:\/\/)?(www\.)?(.[^/:]+)/);
当它不包含protocol://时,它与主机名很好匹配,但当它包含它时,它只返回协议(protocol)而不是主机名。
当域名不包含该域名时,我如何匹配该域名?
最佳答案
我用了this function来自 Steven Levithan,它可以很好地解析 url。
以下是如何使用此功能
alert(parseUri("www.domain.com/foo").host)
关于javascript - 当字符串没有协议(protocol)时匹配主机名 ://?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7813063/