gpt4 book ai didi

iOS - NSDataDetector : Why does url missing '.com' (http://google) return as valid URL?

转载 作者:可可西里 更新时间:2023-11-01 17:09:05 25 4
gpt4 key购买 nike

我正在尝试使用 NSDataDetector 验证文本字段中提供的 URL,如果我在任何文本前面输入包含“http://”的 URL,它总是返回有效。

i.e. http://someurl, http://someotherurl, etc.

仅供引用 - 虽然网络浏览器能够使用上述格式解释 url,但每次使用此格式时 NSURL 都会返回错误。由于我需要在我的应用程序中使用提供的 URL 调用操作,因此在从提供的 URL 文本创建 NSURL 时它需要有效。

关于如何更正此问题的任何想法,因为这些 url 不是真正有效的?

这是我的代码:

   linkDetector = NSDataDetector(types: NSTextCheckingType.Link.rawValue, error: nil)
linkDetector?.enumerateMatchesInString(self.textField.text, options: NSMatchingOptions(0), range: NSMakeRange(0, countElements(urlString!)), usingBlock: { (result: NSTextCheckingResult!, flags, stop) -> Void in
self.validatedUrlString = self.textField.text
})

最佳答案

根据 RFC 1304 Section 3.5 ,一个有效的域名扩展(在 http:// 协议(protocol)说明符之后)可以如下所示:

<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]

本质上,这意味着 . 不是域名的要求。一个非常常见的示例是 http://localhost,其中不包含 .

关于iOS - NSDataDetector : Why does url missing '.com' (http://google) return as valid URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com