我只想在正则表达式中匹配domain.com而不是subdomain.domain.com。
现在我有这个正则表达式
/([0-9a-z-]{2,}\.[0-9a-z-]{2,3}\.[0-9a-z-]{2,3}|[0-9a-z-]{2,}\.[0-9a-z-]{2,3})$/i
但它也匹配子域。所以我想跳过带有子域的域,只处理“正常”的域。
有什么想法吗?谢谢!
编辑:不应跳过 .co.in、.co.uk 等域名。
最佳答案
这样可以吗?
/^[0-9a-z-]+\.(?:(?:co|or|gv|ac)\.)?[a-z]{2,7}$/i
仅匹配 domain.com
稍微更改一下,因为将 TLD 限制为最多 3 个字符会删除诸如 .museum
之类的内容,或者这是有意为之?
如果您确实需要更准确的模式,那将是一个很棒的长模式,而正则表达式可能不是最佳解决方案。可以看到,有many tlds在那里和even more two-level-tlds :)
关于正则表达式仅匹配域名而不匹配子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866842/