フォームで電子メール アドレスを検証する次の方法があります。
-(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}$";
しかし、それもうまくいきません。助言がありますか?
編集:最初に質問を投稿したときに、最後のドットの前にエスケープを入れませんでした。ごめん。