3

我在http://gskinner.com/RegExr/找到了这个正则表达式来验证 FQDN 域:

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

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

万维网

这不是:

万维网

这也是:

www.test.com

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

谢谢。

4

1 回答 1

1

试试这个:

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

结束正则表达式的“子域”部分的句点之后的问号已被删除,使其成为强制性而不是可选的。

于 2012-11-15T15:38:26.197 回答