【发布时间】:2012-11-23 16:30:59
【问题描述】:
我想验证一个网址,所以我搜索并找到了this
Brian Ray 在他的帖子中说
"@Tate 的回答对于完整的 URL 来说是很好的,但是如果你想验证一个域列,你不想允许他的正则表达式允许的额外 URL 位(例如,你肯定不想允许一个 URL带有文件的路径)。
所以我删除了正则表达式的协议、端口、文件路径和查询字符串部分,结果如下:"
我完全不明白他在说什么。 URL如何成为文件的路径?什么是“域列”?
【问题讨论】:
-
查看他消息底部的示例链接。
-
使用正则表达式验证除简单 URL 之外的任何内容都会适得其反。最好编写一个使用
URI.parse的自定义验证。 -
@DouglasFShearer 你的意思是,如果
URI.parse没有引发URI::InvalidURIError,那么它是一个有效的URI? -
是的,完全正确。另一种验证 URL 的实用方法是向它发出请求,并检查非 50X 响应。
-
URI.parse('xxx') 不要提出,我不明白如何使用它(假设 'xxx' 不被视为 ok URL)。
标签: ruby-on-rails regex validation url