使用帮助from this answer我从字符串中的网址获取干净的域名,如下所示:
url = "http://www.stackoverflow.com/questions/ask"
var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
return matches ? matches[1] : url;
>> "www.stackoverflow.com"
我想删除子域名“www”(和以下的点),但如果存在的话。我如何更改上面的表达式来完成这个?
答案 0 :(得分:2)
您可以在www.
之后匹配可选的http://
:
var matches = url.match(/^https?\:\/\/(?:www\.)?([^\/?#]+)(?:[\/?#]|$)/i);
//=> ["http://www.stackoverflow.com/", "stackoverflow.com"]
答案 1 :(得分:0)
你可以尝试,
url = "http://www.stackoverflow.com/questions/ask"
var matches = url.match(/^https?\:\/\/(www\.)?([^\/?#]+)(?:[\/?#]|$)/i);
return matches ? matches[2] : url;
支持包含和不包含www.