使用RegexKitLite庫(iOS2.0),NSPredicate
(iOS 3.0以上)和NSRegularExpression
(iOS 4.0)可以完成iPhone編程中的電子郵件驗證檢查。但是,有沒有人能說出一個優於另一個的優點,哪一個是上述三個方法中最好的驗證選擇。iOS中的電子郵件驗證
回答
我認爲這在很大程度上取決於在iOS上的最低版本的應用程序將支持,以及是否有一個內置的類」我會做這份工作,使用它。正如你暗示的那樣,你會用一些其他的第三方框架以一致的方式來支持舊版本。
現在,我會使用NSPredicate
或NSRegularExpression
,無論是從iOS 4的開始,這是相當有可能成爲新的iOS應用程序所支持的最低版本,如果不是的iOS 5
有用post支持。
感謝您提供僅針對問題的解決方案。現在我正在iOS 5.0上工作,NSPredicate正在正常工作。 – user574089
我使用NSPredicate總是......這是工作的罰款
NSString *emailid = emailField.text;
NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest =[NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
BOOL myStringMatchesRegEx=[emailTest evaluateWithObject:emailid];
-1這是waaaay太寬容,因爲它會匹配「'......... @ ........ dave'」 –
如何限制用戶輸入他的電子郵件ID作爲@ gmail.com文本域。 – venki
我的回答是從the excellent solution provided in this link一個重構的..
///Returns YES (true) if EMail is valid
+(BOOL) IsValidEmail:(NSString *)emailString Strict:(BOOL)strictFilter
{
NSString *stricterFilterString = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSString *laxString = @"[email protected]+\\.[A-Za-z]{2}[A-Za-z]*";
NSString *emailRegex = strictFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailString];
}
- (BOOL)validateEmail:(NSString *)emailStr
{
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];
}
On Button Click :
if (![self validateEmail:[txtEmail text]])
{
alertValidator.message = @"Please Enter Valid Email Address !";
[alertValidator show];
txtEmail.text = @"";
[txtEmail becomeFirstResponder];
}
這將返回true:'.... @ .. d..dd' –
我認爲最好的辦法,倒手,是Mailgun's free email validation API。我寫了一個簡單的目標-C包裝它:
https://github.com/benzguo/BZGMailgunEmailValidation
BZGMailgunEmailValidator *validator =
[BZGMailgunEmailValidator validatorWithPublicKey:YOUR_PUBLIC_KEY];
[validator validateEmailAddress:self.emailFieldCell.textField.text
success:^(BOOL isValid, NSString *didYouMean) {
// Validation succeeded
} failure:^(NSError *error) {
// Validation failed
}];
如果有一個連接錯誤,驗證回落到基於正則表達式驗證。
如果你仍然想驗證使用正則表達式的郵件,請上網:
完整的電子郵件驗證。試試這個
- (BOOL)validateEmailWithString:(NSString*)checkString
{
NSString *laxString = @"[email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", laxString];
return [emailTest evaluateWithObject:checkString];
}
如何在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");
}
}
所以,我希望對你有所幫助。 謝謝...
- 1. iOS電子郵件地址驗證
- 2. Android電子郵件驗證與Firebase電子郵件驗證
- 3. CakePHP電子郵件驗證
- 4. 驗證電子郵件
- 5. rspec電子郵件驗證
- 6. 驗證電子郵件
- 7. Firebase電子郵件驗證
- 8. ResearchKit:驗證電子郵件
- 9. Jquery - 驗證電子郵件
- 10. 電子郵件驗證javascript
- 11. JavaScript電子郵件驗證
- 12. 電子郵件驗證:JavaScript
- 13. 電子郵件驗證 - HTML
- 14. NSRegularExpression驗證電子郵件
- 15. 電子郵件驗證PHP
- 16. 梨電子郵件驗證
- 17. OpenERP電子郵件驗證
- 18. JavaScript電子郵件驗證 - @
- 19. PHP - 電子郵件驗證
- 20. 電子郵件驗證
- 21. 電子郵件驗證/ PrimeFaces
- 22. 電子郵件驗證php
- 23. 電子郵件驗證
- 24. Html電子郵件驗證
- 25. 電子郵件ID驗證
- 26. 電子郵件驗證
- 27. PHP電子郵件驗證
- 28. PHP電子郵件驗證
- 29. Aviarc - 驗證電子郵件?
- 30. Javascript電子郵件驗證
僅供參考,它是一個在Android上非常簡單的東西的例子,它的內置.. if(!android.util.Patterns.EMAIL_ADDRESS.matcher(someString).matches()) – Fattie