連絡先画面にテキスト フィールドがあり、ユーザーはメール アドレスを入力してメッセージを送信する必要があります。ユーザーが次のような有効なメールアドレスを入力したことを確認する最善の方法は何ですか?
a@b.com / net / org / co.il
abc@gmail.com
abc@yahoo.com
等..
ありがとう
連絡先画面にテキスト フィールドがあり、ユーザーはメール アドレスを入力してメッセージを送信する必要があります。ユーザーが次のような有効なメールアドレスを入力したことを確認する最善の方法は何ですか?
a@b.com / net / org / co.il
abc@gmail.com
abc@yahoo.com
等..
ありがとう
次のことを試してください。
- (BOOL) validateEmail: (NSString *) candidate {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
// return 0;
return [emailTest evaluateWithObject:candidate];
}
-(IBAction)btnTapped:(id)sender{
if([self validateEmail:[txtEmail text]] ==1)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Correct Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
}
else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Incoorect Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
}
}
入力されたテキストごとに呼び出されるため、この textField デリゲート関数を使用します。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *strEnteredText = textField.text;
if(strEnteredText.length>0)
{
if([self validateEmail:strEnteredText])
{
//Valid email
//Use UILabel to give message
// BOOL email = true to know email is valid when submit button tapped
}
else
{
//Not Valid email
//Use UILabel to give message
// BOOl emaiL = false to know email is valid when submit button tapped
}
}
}
このメソッドの .h ファイルを追加します
- (BOOL) validateEmail: (NSString *) enteredText
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:enteredText];
}