正则表达式从字符串中捕获域名,包括特定 tld 的电子邮件地址

Regex to capture domain name from string including email addresses for specific tld's

我需要正则表达式来解析字符串中的域名,包括电子邮件地址中的域。我在 Whosebug 上找到了以下正则表达式:

/(?:[\w-]+\.)+[\w-]+/

根据提供的演示,它的效果非常好:https://regex101.com/r/aF1cY0/5

我在 Whosebug 上的另一个问题中得到了正则表达式:

How to get domain from a string using javascript regular expression

我想更改现有的正则表达式以仅匹配特定的 TLD(例如 com|net|biz)

由于我是正则表达式的新手,所以我很难弄清楚该规定放在哪里。

非常感谢任何帮助。

试试这个

(?:[\w-]+\.)+com|net|biz

/(?:[\w-]+\.)+(?:com|net|biz)/i

function check(){
  var str = prompt("URL example: ");
  var match = str.match(/(?:[\w-]+\.)+(?:com|net|biz)/i);
  if(match)
    alert("Your domain is: '" + match + "'");
  else
    alert("Sorry! Nothing matched!");
}
<button onclick="check()">TRY</button>