如何在swift中验证电子邮件地址? [英] How to validate an e-mail address in swift?

查看:131
本文介绍了如何在swift中验证电子邮件地址?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道如何验证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选项:NSRegularExpressionCaseInsensitive错误: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。 / p>

解决方案

我将使用 NSPredicate

  func isValidEmail(testStr:String) - > Bool {
// print(validate calendar:\(testStr))
let emailRegEx =[A-Z0-9a-z ._%+ - ] + @ [A-Za- z0-9 .-] + \\。[A-Za-z] {2,}

让emailTest = NSPredicate(格式:SELF MATCHES%@,emailRegEx)
return emailTest.evaluate(with:testStr)
}

的Swift早于3.0:

  func isValidEmail(testStr:String) - > Bool {
// print(validate calendar:\(testStr))
let emailRegEx =[A-Z0-9a-z ._%+ - ] + @ [A-Za- z0-9 .-] + \\。[A-Za-z] {2,}

让emailTest = NSPredicate(格式:SELF MATCHES%@,emailRegEx)
return emailTest.evaluateWithObject(testStr)
}

早于1.2:

 类func isValidEmail(testStr:String) - > Bool {
println(validate calendar:\(testStr))
let emailRegEx =[A-Z0-9a-z ._%+ - ] + @ [A-Za-z0-如果允许emailTest = NSPredicate(格式为SELF MATCHES%@,emailRegEx){

$ b [A-Za-z] {2,} $ b return emailTest.evaluateWithObject(testStr)
}
return false
}


Does anyone know how to validate an e-mail address in Swift? I found this code:

- (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;
    }
}

but I can't translate it to Swift.

解决方案

I would use NSPredicate:

 func isValidEmail(testStr:String) -> Bool {
    // print("validate calendar: \(testStr)")
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

    let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
    return emailTest.evaluate(with: testStr)
}

for versions of Swift earlier than 3.0:

 func isValidEmail(testStr:String) -> Bool {
    // print("validate calendar: \(testStr)")
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

    let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
    return emailTest.evaluateWithObject(testStr)
}

for versions of Swift earlier than 1.2:

 class func isValidEmail(testStr:String) -> Bool {
    println("validate calendar: \(testStr)")
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

    if let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx) {
        return emailTest.evaluateWithObject(testStr)
    }
    return false
}

这篇关于如何在swift中验证电子邮件地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆