理想情况下,我想从http://foo.com/bar?param=value或https://www.foo.com
等内容中捕获foo.com感谢。
编辑:抱歉模糊不清。我将在Javascript中执行此操作。
第二次编辑:我应该发布我可怕的第一次尝试:https?:// w?w?w?[。]?[^?/]
答案 0 :(得分:16)
你不需要正则表达式!让浏览器为您解析:
var a = document.createElement('a');
a.href = 'http://foo.com/bar?param=value';
a.hostname; // "foo.com"
瞧!
答案 1 :(得分:1)
如果在JavaScript中执行此操作,则甚至不需要正则表达式。您可以像这样使用location对象:
var host = window.location.host;
此链接提供了有关如何获取网址其他部分的更多信息:http://www.comptechdoc.org/independent/web/cgi/javamanual/javalocation.html。
答案 2 :(得分:1)
要获得完全跨浏览器兼容性,只需使用文档对象,而不是窗口:
var theHost = document.location.host;
答案 3 :(得分:0)
如果您真的出售使用正则表达式而不是语言中的内置工具(例如PHP的parse_url
函数),那么类似于:
(?:(\w+)://)([^/]+)(/\w+)?
将以非常粗略的方式进行,主机名在子组2中。这只是一个快速而肮脏的黑客(并且在所有情况下都不起作用),我建议使用该语言的内置 - 在工具中。
如果是Javascript和当前网址,请查看window.location.host
或window.location.hostname
。