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
这是一个节点,因此,文档
不可用。包含该信息可能会有所帮助。