如何在 Perl 中验证主机名?
我需要想出一个正则表达式来验证主机名 RFC-1123 和 RFC-952。
现在我正在使用这个:
^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$/
但这并不能解决问题,因为它不会将 a.
捕获为无效主机名。
如何增强 reg 表达式以符合这些 RFC?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Regexp::Common 包含一个 正则表达式与 RFC-1035 匹配,这足够好吗?
Regexp::Common contains a regex that matches against RFC-1035, is this good enough?
我在 Data::Validate::Domain “http://search.cpan.org/search?query=RFC+1123&mode=all”rel="nofollow noreferrer">CPAN。
我还没有尝试过这个,但它看起来很有希望(有积极的评论等)。
I found Data::Validate::Domain on CPAN.
I have not tried this, but it looks promising (has positive reviews etc.).