如何快速验证电子邮件地址?

有谁知道如何在Swift中验证电子邮件地址?我发现此代码:

- (BOOL) validEmail:(NSString*) emailString {

if([emailString length]==0){

return NO;

}

NSString *regExPattern = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];

NSUInteger regExMatches = [regEx numberOfMatchesInString:emailString options:0 range:NSMakeRange(0, [emailString length])];

NSLog(@"%i", regExMatches);

if (regExMatches == 0) {

return NO;

} else {

return YES;

}

}

但我无法将其翻译为Swift。

回答:

我会用NSPredicate

func isValidEmail(_ email: String) -> Bool {        

let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"

let emailPred = NSPredicate(format:"SELF MATCHES %@", emailRegEx)

return emailPred.evaluate(with: email)

}

对于低于3.0的Swift版本:

func isValidEmail(email: String) -> Bool {

let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"

let emailPred = NSPredicate(format:"SELF MATCHES %@", emailRegEx)

return emailPred.evaluate(with: email)

}

对于低于1.2的Swift版本:

func isValidEmail(email: String) -> Bool {

let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"

if let emailPred = NSPredicate(format:"SELF MATCHES %@", emailRegEx) {

return emailPred.evaluateWithObject(email)

}

return false

}

以上是 如何快速验证电子邮件地址? 的全部内容, 来源链接: utcz.com/qa/409781.html

回到顶部