2015-07-13 61 views
0

我想驗證電子郵件的textfield,並想知道它是否是techmahindra電子郵件。我怎樣才能找到它。我在這裏附上我的代碼。 任何人都可以建議更改。techmahindra賬戶的RegEx驗證

NSString * myString = @ "@"; 
NSArray * myWords = [emailStr componentsSeparatedByString: myString]; 

NSString * str = [myWords objectAtIndex: 1]; 

if ([str isEqualToString: @ "techmahindra.com"]) { 
    NSString * emailRegex = @ "[A-Z0-9a-z._%+][email protected][A-Za-z0-9.]+\\.[A-Za-z]{2,4}"; 
    NSPredicate * emailTest = [NSPredicate predicateWithFormat: @ "SELF MATCHES %@", emailRegex]; 

    return [emailTest evaluateWithObject: emailStr]; 
} else 
    return NO; 

回答

0

既然你寫的代碼來提取@符號後面的字符串的一部分,你不需要正則表達式那裏。你可以簡單地做一個區分大小寫的比較,像這樣:

if (str != nil && [str compare:@"techmahindra.com" options:NSCaseInsensitiveSearch]) { 
    return [emailTest evaluateWithObject:emailStr]; 
} 
else 
    return NO; 

你或許也應該修剪空格作爲您的電子郵件驗證碼,因爲這檢查部件是否有例如尾部空間將失敗。

+0

感謝您的帖子,但有什麼將驗證電子郵件是gmail或不,techmahindra或不那樣。什麼應該寫在正則表達式 – user1828845

+0

我認爲最簡單的方法來驗證特定的電子郵件域是一個這樣的域(全部小寫)的列表,處理您的電子郵件地址以小寫字母提取其域,然後檢查您的數組包含它。正則表達式很快就會變得複雜,並且當您想要更新標準時會成爲維護噩夢。 – Clafou