Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找根域的Javascript简单正则表达式_Javascript_Regex - Fatal编程技术网

查找根域的Javascript简单正则表达式

查找根域的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

我有一个函数,它使用正则表达式返回给定url的根域

但是它使用多正则表达式,我们担心它的性能。在单行正则表达式中是否有更好的方法实现同样的功能

注:

document.location.host在我的情况下似乎不起作用。

尝试以下操作:

它适用于所有现代浏览器,甚至IE 5.5+

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'));