4

iPhone プログラミングでの電子メール検証チェックは、RegexKitLite ライブラリ (iOS2.0)、NSPredicate(iOS 3.0 以降)、およびNSRegularExpression(iOS 4.0) を使用して実行できます。しかし、どちらが他のものよりも優れているのか、そして述べられた3つの選択肢の中でどれが最良の検証オプションであるかを誰でも述べることはできますか.

4

7 に答える 7

11

私は常にNSPredicateを使用しています...そして正常に動作しています

NSString *emailid = emailField.text;
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest =[NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
BOOL myStringMatchesRegEx=[emailTest evaluateWithObject:emailid];
于 2011-12-15T09:05:14.273 に答える
8

私の答えは、このリンクで提供されている優れたソリューションからリファクタリングされたものです。

///Returns YES (true) if EMail is valid
+(BOOL) IsValidEmail:(NSString *)emailString Strict:(BOOL)strictFilter
{
    NSString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSString *laxString = @".+@.+\\.[A-Za-z]{2}[A-Za-z]*";

    NSString *emailRegex = strictFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];

    return [emailTest evaluateWithObject:emailString];
}
于 2013-03-13T14:46:37.320 に答える
3
- (BOOL)validateEmail:(NSString *)emailStr
{
    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:emailStr];
}

On Button Click :

if (![self validateEmail:[txtEmail text]])
    {
        alertValidator.message = @"Please Enter Valid Email Address !";
        [alertValidator show];
        txtEmail.text = @"";
        [txtEmail becomeFirstResponder];
    }
于 2013-04-01T10:05:20.757 に答える
1

アプリがサポートする iOS の最小バージョンに大きく依存すると思います。その仕事をする組み込みクラスがある場合は、それを使用します。ほのめかしたように、他のサードパーティのフレームワークを使用して、古いバージョンを一貫した方法でサポートします。

現在、私はNSPredicateまたはNSRegularExpressionを使用します。どちらも iOS 4 以降でサポートされています。これは、iOS 5 ではないにしても、新しい iOS アプリでサポートされる最小バージョンである可能性が非常に高いです。

便利な投稿

于 2011-12-15T09:05:40.310 に答える
0

電子メールの検証を完了します。これを試して

- (BOOL)validateEmailWithString:(NSString*)checkString
{

    NSString *laxString = @".+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", laxString];
    return [emailTest evaluateWithObject:checkString];
}
于 2015-06-10T05:14:14.857 に答える
-2

iOSで電子メールIDとパスワードの検証を作成する方法

急いで、コードの後に​​役立つ電子メールIDチェックの簡単な検証を簡単に。

- (IBAction)actLogin:(id)sender

{

    if([self validateEmailWithString:userNameText.text]==YES)
    {
         NSLog(@"valid email");
         if (passWordText.text.length>6)
         {
            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
            [defaults setObject:userNameText.text forKey:@"username"];
            [defaults setObject:passWordText.text forKey:@"password"];
            [defaults setObject:@"YES" forKey:@"islogin"];
            [defaults synchronize];
            NSLog(@"Login is Successfully !!");
         }
    }
    else
    {
        NSLog(@"invalid email and password");
    }
}

ので、お役に立てれば幸いです。ありがとう...

于 2015-09-04T06:18:50.357 に答える