验证FQDN

4

我在http://gskinner.com/RegExr/上找到了这个正则表达式,可以验证一个FQDN域名:

(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)

基本上它可以工作,但我想修改它,不允许三个或更多字符的主机名和没有域名。例如,目前这是有效的:

www

这不是:

ww

这也是:

www.test.com

我想修改它,不允许第一个例子。换句话说,检查是否始终存在域。

谢谢。


这不是一个正则表达式,但它也可以做更多的事情:http://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/DomainValidator.html - qingu
1个回答

1

试试这个:

(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.)+(?:[a-zA-Z]{2,})$)

正则表达式中“子域名”部分结束的句号后面的问号已被删除,这使得它变成了必选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接