用于匹配域名(FQDN)的JavaScript正则表达式

时间:2019-02-21 19:22:36

标签: javascript regex domain-name fqdn

我需要验证域

有效方案是

*.domain.com(OR)domain.com(OR)domain.domain.com

无效:

.domain.com(或)*domain.com

它不应在字符串开头加反斜杠

我尝试使用此表达式,但失败了。

^(?:\*\.)(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}

1 个答案:

答案 0 :(得分:0)

regex101.com 上,您可以搜索库。即使没有合适的口味 ECMA-Script / JavaScript ,我也在 PCRE 中找到了一个:Domain with protocol, Third-Level-Domain, Second-Level-Domain, Top-Level-Domain and Port.,并根据您的需要进行了分叉:

^((\w+)\:\/\/)?(([\w\-]+|\*)\.)*([\w\-]+)\.(\w+)(\:(\d+))?$
  

更新previous regex (v2)仅搜索零件,因此也匹配了无效示例,因为零件是有效的。通过添加 begin ^ end $对其进行了修复。现在,正则表达式会拒绝无效的(*domain.com.domain.com)。

看到我的regex (v3) including tests