【发布时间】:2013-08-01 22:08:20
【问题描述】:
在 C# 和 Javascript 中验证 FQDN 的正确正则表达式是什么? 我一直在四处寻找,我发现了不同的规格。哪个是正确的。
我发现的几个例子:
1.(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)
2. (?=^.{1,254}$)(^(?:(?!\d|-)[a-zA-Z0-9\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)
3. \b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b
(Regular Expression cook book)
请帮忙
【问题讨论】:
-
@Andreas:谢谢你。我见过这个。他说:“我对 RFC 规则的唯一偏差是额外的规则,即*域(最后一个 '.' 之后的部分)只能是字符,并且必须是 2 个或更多(.com, . net, .org, .eu, .uk, 等)。但我找不到记录在哪里。”不确定这是否正确。
-
来自RFC 920 - TLD 要求:ARPA、GOV、EDU、COM、MIL、ORG 或英文两字母国家代码。所以这似乎是一个有效的扩展/修改。
-
@Anders :我应该做些什么改变才能在 Javascript 中使用它。我尝试了以下 -> var fqdnRegEx = /(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63} (?
-
@Andreas 多年后回想起来,感觉已经很古老了
标签: c# javascript .net regex fqdn