从域 REGEX javascript 获取主机名

sst*_*oss 1 javascript regex dns pattern-matching

我尝试做的是当我有:

www.gmail.com,

www.gmail.com/,

http://www.gmail.com ,

https://www.gmail.com ,

http://gmail.com ,

https://gmail.com ,

www.gmail.com/example

只需获取 gmail.com,远没有搜索相关问题,我有匹配这些内容的模式:

var pat = /^(https?:\/\/)?(?:www\.)?([^\/]+)/;

但是当我也输入一个词时它也会返回 true,例如。gmail(不带 .com)。我如何改进它以匹配 abcd.efgs.com 形式的内容?我的意思是指定字符串应该包含字符,并且在 http、https、www 之后至少有一个点。?

提前致谢!

kum*_*ums 5

如果我的理解是正确的,您只想匹配 URL 的域名。

你可以用这个模式做到这一点

(?:\w+\.)+\w+
Run Code Online (Sandbox Code Playgroud)

我已经复制了您的 JavaScript Fiddle 并进行了更改以使用 html文本textarea框来演示这一点。该文本框的演示,从用户输入的URL提取域名。该textarea的框演示列出了所有在输入多行文本域。

http://jsfiddle.net/q6z3xb6d/

[更新]

只需再次阅读您的问题。看起来您想排除以 开头的域的匹配项www。您可以使用此模式:

(?!(w+)\.)\w*(?:\w+\.)+\w+
Run Code Online (Sandbox Code Playgroud)

JS 小提琴演示 - 更新版本:

http://jsfiddle.net/q6z3xb6d/2/