我有以下方法可以在表单中验证我的电子邮件地址。
-(BOOL) validEmailAddress:(NSString*) emailString {
NSString *regExPattern = @"^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-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])];
if (regExMatches == 0)
return NO; // email invalid
else
return YES; // email valid
}
这很好用,只是如果用户提供“abc@xyz”的电子邮件(没有像 .com 或 .org 这样的超级域),它就会崩溃。
我很确定问题与“。”有关。在我的正则表达式中。我试着像这样逃避它,
NSString *regExPattern = @"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
但这也行不通。有什么建议么?
编辑:最初发布问题时,我没有在最后一个点之前添加转义符。对不起。