添加正则表达式规则以删除“www。”在现有的表达

时间:2014-01-05 14:33:19

标签: javascript regex

使用帮助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”(和以下的点),但如果存在的话。我如何更改上面的表达式来完成这个?

2 个答案:

答案 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.

的网址