如何在swift中验证电子邮件地址? [英] How to validate an e-mail address in 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屋!
查看全文