Javascript简单的正则表达式找到根域 [英] Javascript simple regex to find root domain
本文介绍了Javascript简单的正则表达式找到根域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个使用正则表达式返回给定网址的根域的函数。
I have a function that uses regex to return root domain of the given url.
function cleanUp(url) {
url = url.replace(new RegExp(/^\s+/),""); // START
url = url.replace(new RegExp(/\s+$/),""); // END
// IF FOUND, CONVERT BACK SLASHES TO FORWARD SLASHES
url = url.replace(new RegExp(/\\/g),"/");
// IF THERE, REMOVES 'http://', 'https://' or 'ftp://' FROM THE START
url = url.replace(new RegExp(/^http\:\/\/|^https\:\/\/|^ftp\:\/\//i),"");
// IF THERE, REMOVES 'www.' FROM THE START OF THE STRING
url = url.replace(new RegExp(/^www\./i),"");
//remove slash from end
url = url.replace(new RegExp(/\/$/i),"");
return url;
}
但它使用多正则表达式,我们担心性能。在一行正则表达式中有更好的方法吗?
But it uses multi regex and we are worried about the performance. Is there a better way to do the same in a one line regex?
注意:
document.location .host似乎不适用于我的情况。
document.location.host does not seem to work in my case.
推荐答案
尝试:
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'));
这篇关于Javascript简单的正则表达式找到根域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文