【问题标题】:Delphi code for sanitizing a URL entered by the user用于清理用户输入的 URL 的 Delphi 代码
【发布时间】:2009-01-27 15:43:57
【问题描述】:

我需要一个能够输入 URL 的用户,并希望确保它尽可能健康。比如检查前面是否有 http://,没有双点,可能是有效的 TLD,尾部斜杠(我必须添加最后一页)。

我认为这是一个如此普遍的要求,它必须已经存在。有什么建议吗?

[edit:] 明确地说,这是 Windows 服务中的运行时要求。目的是从配置中读取的 URL 中获得最佳效果,而不是验证用户输入的内容。本质上,如果我可以调整 URL 并使其工作,那么这就是我想做的。下载将是一个特定的文件,所以如果一切都出错了,它不会从另一个服务器错误地得到错误的东西。

【问题讨论】:

    标签: delphi url


    【解决方案1】:

    在 Windows API 中使用PathIsURL 函数怎么样?

    更新: 这已经包含在 Delphi RTL 中的 ShLwApi 单元中。

    【讨论】:

      【解决方案2】:

      你看过“What is the best regular expression to check if a string is a valid URL”吗?它不是 Delphi 特有的,但可以帮助您入门。

      【讨论】:

      • 嗯,一个有趣的想法,谢谢,但我宁愿“自动更正”URL 而不是验证它。但是在进入时验证它也可能是件好事。
      • 您可以简单地显示输入的 URL 不正确的视觉标志,而不是自动更正。例如禁用“确定”按钮或将编辑背景设置为红色。
      • 但在您可以自动更正之前,您需要知道要更正什么,因此您需要某种验证。一个好的正则表达式会告诉你协议是否丢失,或者它是否以斜线结尾。使用捕获组 - 如果它们是空的 - 您需要添加缺少的内容。
      【解决方案3】:

      也许here 的一些建议可能会有所帮助。

      【讨论】:

      • 这可能是一个不错的选择 - 将 URL 分解为存在的部分,然后用任何缺失的部分进行重组。
      猜你喜欢
      • 1970-01-01
      • 2021-03-30
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      相关资源
      最近更新 更多