【发布时间】:2012-08-28 20:49:10
【问题描述】:
可能重复:
Ensure User has entered email address string in correct format?
我有UITextField,在其中我从用户那里获取他们输入的电子邮件地址,并且我想验证该电子邮件地址,例如我应该检查它是否包含@符号和其他电子邮件字符等符号。
如果电子邮件地址有错误,则应显示UIAlertView,表示“输入有效的电子邮件地址”。
【问题讨论】:
可能重复:
Ensure User has entered email address string in correct format?
我有UITextField,在其中我从用户那里获取他们输入的电子邮件地址,并且我想验证该电子邮件地址,例如我应该检查它是否包含@符号和其他电子邮件字符等符号。
如果电子邮件地址有错误,则应显示UIAlertView,表示“输入有效的电子邮件地址”。
【问题讨论】:
你可以使用 NSPredicate 来做到这一点
//suppose emailID is your entered email address NSString
NSString *emailFormat1 = @"[A-Z0-9a-z._]+@[A-Za-z0-9]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailFormat1];
if ([emailTest1 evaluateWithObject:emailID]||[emailTest2 evaluateWithObject:emailID]) {
//yes it is valid
}
else
//no it is invalid
【讨论】:
Objective C 风格
NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,10}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
if ([emailTest evaluateWithObject:email.text] == NO) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test!" message:@"Please Enter Valid Email Address." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
return;
}
Swift 风格
class func isValidEmail(emailString:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,10}"
var emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let result = emailTest?.evaluateWithObject(emailString)
return result!
}
【讨论】: