Javascript Regex获得SLD+;域字符串的TLD

Javascript Regex获得SLD+;域字符串的TLD,javascript,regex,Javascript,Regex,我有一个将域名作为参数的函数,但域的格式必须是xxx.com。e、 g.http://subdomain.example.com必须作为example.com传递到函数中 我已经编写了下面的正则表达式,但它只返回TLD(.com)。我对正则表达式有点生疏,所以看不出哪里出了问题。。。第一条语句是从domain提取http://,第二条语句应该提取任何子域 var-domain=req.query.domain.replace(//.*?:\//\//g',).replace(//^[^.]+\.

我有一个将域名作为参数的函数,但域的格式必须是
xxx.com
。e、 g.
http://subdomain.example.com
必须作为
example.com
传递到函数中

我已经编写了下面的正则表达式,但它只返回TLD(.com)。我对正则表达式有点生疏,所以看不出哪里出了问题。。。第一条语句是从
domain
提取
http://
,第二条语句应该提取任何子域

var-domain=req.query.domain.replace(//.*?:\//\//g',).replace(//^[^.]+\./g',)


使用上述正则表达式,
http://example.com
变成
com

我认为直接匹配模式比匹配并删除其补码更容易。我将使用模式
/[^./]+\.[^./]+$/
。这将匹配由字符串末尾的句点分隔的两行非特殊字符

警报('http://subdomain.example.com“.match(/[^./]+\.[^./]+$/)[0]);

警惕('http://example.com“.match(/[^./]+\.[^./]+$/)[0])一个更简单的答案是使用所示的
document.createElement
技巧

要获取主机名和TLD,只需编写

var link = document.createElement('a');
link.href = req.query.domain;

var formattedDomain = link.hostname; //yay

这是一个节点,因此,
文档
不可用。包含该信息可能会有所帮助。