Skip to content

Instantly share code, notes, and snippets.

@laevandus
Created August 14, 2019 11:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laevandus/ee93b0d3828bf41f37ad3e5e243cbcff to your computer and use it in GitHub Desktop.
Save laevandus/ee93b0d3828bf41f37ad3e5e243cbcff to your computer and use it in GitHub Desktop.
private func validate(_ emailString: String) -> String? {
let dataDetector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
// Finding matches in string
let range = NSRange(emailString.startIndex..<emailString.endIndex, in: emailString)
guard let match = dataDetector.firstMatch(in: emailString, options: .anchored, range: range) else { return nil }
guard let url = match.url else { return nil }
// Extracting email from the matched url
let absoluteString = url.absoluteString
guard let index = absoluteString.range(of: "mailto:") else { return nil }
return String(url.absoluteString.suffix(from: index.upperBound))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment