2017-02-16 5 views
0

こんにちは友人は、私は、正しいメール形式の検証を必要とし、私のコード正しい方法は

+ (BOOL)validateEmailID:(NSString *)emailString { 
    if ([emailString length] == 0) { 
     return NO; 
    } 
    NSString *regExPattern = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-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])]; 
    return regExMatches != 0; 
} 

その作業罰金インチしかし、[email protected] & [email protected] & [email protected]のような電子メールIDが入力されています。 私の質問は最初の値は文字でなければならない数字または完全な文字の電子メールIDの検証: [email protected]または[email protected]または[email protected]のような形式で入力してください。完全な数字だけではありません。 メールアドレスが混在していますが、最初に入力した値は文字である必要があります。

誰かを助けてください。

以下
+0

良い記事http://www.regular-expressions.info/email.html – souvickcse

+0

、電子メールアドレスは完全な正規表現によって検証することができません。私は一般的な '^ \\ S + @ \\ S + $'を使うことをお勧めします。それ以外は必要ありません。検証では、ユーザーが不正なデータ(電子メールにfullnameなど)を入力しないようにする必要があります。それは完璧である必要はなく、電子メールのエッジケースが多すぎます。 – Sulthan

答えて

0

thisサイトへのコード

+(BOOL)validateEmailWithstring:(NSString*)mailString 
{ 
    NSString *validString = @"[email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*"; 
    NSPredicate *emailTest=[NSPredicate predicateWithFormat:@"SELF MATCHES %@",validString]; 
    return [emailTest evaluateWithObject:mailString]; 
} 
+0

@Arunさん、ありがとうございます。でも、私の望むものではありません[email protected]のように入力すると、その答えは誤りです。それはちょうどbro.firstを入力する必要があります[email protected]のような文字でなければなりません。これは[email protected]または[email protected]ではありません。 –

+0

だから、これはうまくいきます - [email protected]。ユーザーが入力しなければならない開始最小文字数は何ですか? – Arun

+0

置換 - 有効な文字列 - 'validString =" [A-Za-z] {1} [A-Za-z0-9-]。+ @([A-Za-z0-9-] + \\。)+ [A-Za-z] {2} [A-Za-z] * "' {1}を文字列として入力する最小文字数に変更します。 – Arun

-1

Accordintです:

私はアップルのアーティスト同士のコラボレーションに応じNSStringのカテゴリの方法にプレフィックスを追加しました。世界的のために

@interface NSString(RegularExpressions) 

- (BOOL)rep_isValidEmail; 

@end 

@implementation 

- (BOOL)rep_isValidEmail 
{ 
    NSString *expression = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"; 
     NSPredicate *test=[NSPredicate predicateWithFormat:@"SELF MATCHES %@",expression]; 
     return [test evaluateWithObject:self]; 
} 
@end 
0

+(BOOL)validateEmail:(NSString *)mailStr { 

    NSString *validStr = @"/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/"; 
    NSPredicate *emailPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",validStr]; 
    return [emailPre evaluateWithObject:mailStr]; 
} 
0

この

func validateEmail(candidate: String) -> Bool { 
let emailRegex = "[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" 
return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluateWithObject(candidate) 
} 
1

を試してみて、これを試してみてください。

-(BOOL)isValidEmail 
{ 
    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{1,4}"; 
    NSString *laxString = @"[email protected]+\\.[A-Za-z]{2}[A-Za-z]*"; 
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString; 
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
    return [emailTest evaluateWithObject:self]; 
} 
0

表現、あなたはあなたが英国([email protected])内のすべての会社のように、多くのドメインをブロックしているRFC 5322を満たしていない使用していること。一般的に

+ (BOOL) validateEmail: (NSString *) candidate; 
{ 
    // The Official Standard: RFC 5322 
    // http://www.regular-expressions.info/email.html 
    NSString *emailRegEx = 
    @"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}" 
    @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" 
    @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-" 
    @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5" 
    @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-" 
    @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21" 
    @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx]; 
    return [predicate evaluateWithObject:candidate]; 
}