|
@@ -4,24 +4,10 @@ import DcCore
|
|
|
|
|
|
struct Utils {
|
|
struct Utils {
|
|
|
|
|
|
- static func isValid(email: String) -> Bool {
|
|
|
|
- let emailRegEx = "(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
|
|
|
|
- + "~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
|
|
|
|
- + "x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
|
|
|
|
- + "z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
|
|
|
|
- + "]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
|
|
|
|
- + "9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
|
|
|
|
- + "-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"
|
|
|
|
-
|
|
|
|
- let emailTest = NSPredicate(format: "SELF MATCHES[c] %@", emailRegEx)
|
|
|
|
- return emailTest.evaluate(with: email)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
static func isEmail(url: URL) -> Bool {
|
|
static func isEmail(url: URL) -> Bool {
|
|
let mailScheme = "mailto"
|
|
let mailScheme = "mailto"
|
|
if let scheme = url.scheme {
|
|
if let scheme = url.scheme {
|
|
- return mailScheme == scheme && isValid(email: url.absoluteString.substring(mailScheme.count + 1, url.absoluteString.count))
|
|
|
|
|
|
+ return mailScheme == scheme && mayBeValidAddr(email: url.absoluteString.substring(mailScheme.count + 1, url.absoluteString.count))
|
|
}
|
|
}
|
|
return false
|
|
return false
|
|
}
|
|
}
|