Ruby on rails 验证Rails中的URL域
我想验证一个URL,所以我搜索并找到了 布莱恩·雷在他的帖子中说 “@Tate的答案适用于完整URL,但如果您想验证域列,您不希望允许其正则表达式允许的额外URL位(例如,您肯定不希望允许带有文件路径的URL) 因此,我删除了regex的协议、端口、文件路径和查询字符串部分,结果是:Ruby on rails 验证Rails中的URL域,ruby-on-rails,regex,validation,url,Ruby On Rails,Regex,Validation,Url,我想验证一个URL,所以我搜索并找到了 布莱恩·雷在他的帖子中说 “@Tate的答案适用于完整URL,但如果您想验证域列,您不希望允许其正则表达式允许的额外URL位(例如,您肯定不希望允许带有文件路径的URL) 因此,我删除了regex的协议、端口、文件路径和查询字符串部分,结果是: 我完全不明白他说了什么。URL如何成为文件的路径?什么是“域列”?URL由几个部分组成。如果您有一个非常简单的URL,例如: http://www.example.com:1234/path/to/file.htm
我完全不明白他说了什么。URL如何成为文件的路径?什么是“域列”?URL由几个部分组成。如果您有一个非常简单的URL,例如:
http://www.example.com:1234/path/to/file.html?key1=value1&key2=value2
这些部分是:
- 协议:http://
- 主持人:www
- 域名:example.com
- 港口:1234
- 文件路径:path/to/file.html
- 查询字符串:key1=value1&key2=value2
关于URL如何引用本地文件的问题,有一个特殊的协议:
file://
。由于路径也必须以/开头,因此会产生类似file:///home/user/file.html
,因此开头有三个斜杠。URL由几个部分组成。如果您有一个非常简单的URL,例如:
http://www.example.com:1234/path/to/file.html?key1=value1&key2=value2
这些部分是:
- 协议:http://
- 主持人:www
- 域名:example.com
- 港口:1234
- 文件路径:path/to/file.html
- 查询字符串:key1=value1&key2=value2
关于URL如何引用本地文件的问题,有一个特殊的协议:
file://
。由于路径也必须以/开头,因此会产生类似file:///home/user/file.html
,因此开头有三个斜杠。检查他邮件底部的示例链接。用正则表达式验证除简单URL以外的任何内容都会适得其反。最好编写一个使用URI.parse
@douglasfshear的自定义验证。您的意思是,如果URI.parse
没有引发URI::InvalidURIError
,那么它就是一个有效的URI吗?是的,完全正确。验证URL的另一种实用方法是向其发出请求,并检查是否有非50X响应。URI.parse('xxx')不要提出,我不知道如何使用它(假设'xxx'不被认为是ok URL)。检查他消息底部的示例链接。用正则表达式验证任何东西,但简单URL除外,会产生反效果。最好编写一个使用URI.parse
@douglasfshear的自定义验证。您的意思是,如果URI.parse
没有引发URI::InvalidURIError
,那么它就是一个有效的URI吗?是的,完全正确。验证URL的另一种实用方法是向其发出请求,并检查是否有非50X响应。URI.parse('xxx')不引发,我不知道如何使用它(假设'xxx'不被视为ok URL)。