查找根域的Javascript简单正则表达式
我有一个函数,它使用正则表达式返回给定url的根域 但是它使用多正则表达式,我们担心它的性能。在单行正则表达式中是否有更好的方法实现同样的功能 注: document.location.host在我的情况下似乎不起作用。尝试以下操作: 它适用于所有现代浏览器,甚至IE 5.5+查找根域的Javascript简单正则表达式,javascript,regex,Javascript,Regex,我有一个函数,它使用正则表达式返回给定url的根域 但是它使用多正则表达式,我们担心它的性能。在单行正则表达式中是否有更好的方法实现同样的功能 注: document.location.host在我的情况下似乎不起作用。尝试以下操作: 它适用于所有现代浏览器,甚至IE 5.5+ var url = document.createElement('a'); url.href = 'http://maps.test.google.com'; var host = url.hostname; h
var url = document.createElement('a');
url.href = 'http://maps.test.google.com';
var host = url.hostname;
host = host.split('.');
var domain = host.pop();
domain = host.pop() + '.' + domain;
alert('Root is: ' + domain)
尝试:
我已经在www.google.com上更新了它,如果那样的话,它可能会失败,我们可以扩展它吗?太棒了。将此添加到结束url[1]=url[1]。替换(/^www\./i,”);删除www.对我来说很好。非常感谢。谢谢,但是trim似乎在内部使用regex,这是额外的开销。我们希望它在现有的正则表达式中发生。@Selvam关于正则表达式的trim,这里有一篇做效率分析的很棒的文章:。另外,对于常见的javascript正则表达式,请参见以下内容:
var url = document.createElement('a');
url.href = 'http://maps.test.google.com';
var host = url.hostname;
host = host.split('.');
var domain = host.pop();
domain = host.pop() + '.' + domain;
alert('Root is: ' + domain)
function cleanUp(url) {
var url = $.trim(url);
if(url.search(/^https?\:\/\//) != -1)
url = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i, "");
else
url = url.match(/^([^\/?#]+)(?:[\/?#]|$)/i, "");
return url[1];
}
alert(cleanUp(' http://www.google.com/about.html'));
alert(cleanUp(' www.google.com/about.html'));