作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 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/
我是一名优秀的程序员,十分优秀!