我正在寻找用于验证
Swift中的电子邮件(String)的最简单和最干净的方法.在Objective-C中,我使用这种方法,但是如果我将其重写为Swift,则在创建谓词时会收到错误“无法解析格式字符串”.
- (BOOL) validateEmail: (NSString *) candidate { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",emailRegex]; return [emailTest evaluateWithObject:candidate]; }
解决方法
看起来很简单如果您有Swift转换的问题,如果可能有益于查看您实际尝试的内容.
这对我有用:
func validateEmail(candidate: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}" return NSPredicate(format: "SELF MATCHES %@",emailRegex).evaluateWithObject(candidate) } validateEmail("test@google.com") // true validateEmail("invalid@@google.com") // false