iOS:是否从UITextView中提取检测到的数字和链接?

时间:2018-12-10 20:50:28

标签: ios url uitextview detection phone-number

This question和类似的内容解决了如何检测<xs:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="nameOfLocalCopyOfXml.xsd"/> 内部的电话号码和链接。

一旦检测到,有没有办法提取检测到的数字和链接?

目标是使用UITextView来检测数字和链接,而不是重建此逻辑。

澄清一下,理想的工作流程是:

  1. 用户在UITextView中输入文本。
  2. UITextView检测数字和链接。
  3. 从文本中提取数字和链接。

1 个答案:

答案 0 :(得分:1)

UITextView实际上确实使用户可单击链接的数据检测过程更容易实现。如果您尝试提取和使用该数据,我可能会建议实施它以处理您的特定用例。幸运的是,数据检测非常简单。

let string = "www.google.com / (555) 123-4567"

let types: NSTextCheckingResult.CheckingType = [.phoneNumber, .link]
let detector = try NSDataDetector(types: types.rawValue)
let range = NSMakeRange(0, string.count)
detector.enumerateMatches(in: string, options: [], range: range) { result, _, _ in
   print(result)
}

输出:

Optional(<NSLinkCheckingResult: 0x6000031264c0>{0, 14}{http://www.google.com})
Optional(<NSPhoneNumberCheckingResult: 0x600003f384b0>{17, 14}{(555) 123-4567})