Email validation on textField in iOS

前端 未结 14 558

In iOS App, how to add Email validation on UITextField?

相关标签:
14条回答
  • 2020-11-30 17:57

    Use Below code for "Swift language" For Email Validation

    func ValidateEmailString (strEmail:NSString) -> Bool
    {
       let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
       let emailText = NSPredicate(format:"SELF MATCHES [c]%@",emailRegex)
       return (emailText.evaluate(with: strEmail))
    } 
    

    Thanks :)

    0 讨论(0)
  • 2020-11-30 18:00

    perfect validation for email. try this.

    - (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];
    }
    
    0 讨论(0)
  • 2020-11-30 18:01

    Use the below code:-

    NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
    //Valid email address
    
    if ([emailTest evaluateWithObject:userMailTextField.text] == YES) 
    {
         //Do Something
    }
    else
    {
         NSLog(@"email not in proper format");
    }
    

    userMailTextField is the name of my textField (use your own).

    I hope this code will help you!!!

    0 讨论(0)
  • 2020-11-30 18:02

    Try this out
    This checks exactly with top level domain names along with validation.

    
    - (BOOL)validateEmail:(NSString *)inputText {
        NSString *emailRegex = @"[A-Z0-9a-z][A-Z0-9a-z._%+-]*@[A-Za-z0-9][A-Za-z0-9.-]*\\.[A-Za-z]{2,6}"; 
        NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
        NSRange aRange;
        if([emailTest evaluateWithObject:inputText]) {
            aRange = [inputText rangeOfString:@"." options:NSBackwardsSearch range:NSMakeRange(0, [inputText length])];
            int indexOfDot = aRange.location;
            //NSLog(@"aRange.location:%d - %d",aRange.location, indexOfDot);
            if(aRange.location != NSNotFound) {
                NSString *topLevelDomain = [inputText substringFromIndex:indexOfDot];
                topLevelDomain = [topLevelDomain lowercaseString];
                //NSLog(@"topleveldomains:%@",topLevelDomain);
                NSSet *TLD;
                TLD = [NSSet setWithObjects:@".aero", @".asia", @".biz", @".cat", @".com", @".coop", @".edu", @".gov", @".info", @".int", @".jobs", @".mil", @".mobi", @".museum", @".name", @".net", @".org", @".pro", @".tel", @".travel", @".ac", @".ad", @".ae", @".af", @".ag", @".ai", @".al", @".am", @".an", @".ao", @".aq", @".ar", @".as", @".at", @".au", @".aw", @".ax", @".az", @".ba", @".bb", @".bd", @".be", @".bf", @".bg", @".bh", @".bi", @".bj", @".bm", @".bn", @".bo", @".br", @".bs", @".bt", @".bv", @".bw", @".by", @".bz", @".ca", @".cc", @".cd", @".cf", @".cg", @".ch", @".ci", @".ck", @".cl", @".cm", @".cn", @".co", @".cr", @".cu", @".cv", @".cx", @".cy", @".cz", @".de", @".dj", @".dk", @".dm", @".do", @".dz", @".ec", @".ee", @".eg", @".er", @".es", @".et", @".eu", @".fi", @".fj", @".fk", @".fm", @".fo", @".fr", @".ga", @".gb", @".gd", @".ge", @".gf", @".gg", @".gh", @".gi", @".gl", @".gm", @".gn", @".gp", @".gq", @".gr", @".gs", @".gt", @".gu", @".gw", @".gy", @".hk", @".hm", @".hn", @".hr", @".ht", @".hu", @".id", @".ie", @" No", @".il", @".im", @".in", @".io", @".iq", @".ir", @".is", @".it", @".je", @".jm", @".jo", @".jp", @".ke", @".kg", @".kh", @".ki", @".km", @".kn", @".kp", @".kr", @".kw", @".ky", @".kz", @".la", @".lb", @".lc", @".li", @".lk", @".lr", @".ls", @".lt", @".lu", @".lv", @".ly", @".ma", @".mc", @".md", @".me", @".mg", @".mh", @".mk", @".ml", @".mm", @".mn", @".mo", @".mp", @".mq", @".mr", @".ms", @".mt", @".mu", @".mv", @".mw", @".mx", @".my", @".mz", @".na", @".nc", @".ne", @".nf", @".ng", @".ni", @".nl", @".no", @".np", @".nr", @".nu", @".nz", @".om", @".pa", @".pe", @".pf", @".pg", @".ph", @".pk", @".pl", @".pm", @".pn", @".pr", @".ps", @".pt", @".pw", @".py", @".qa", @".re", @".ro", @".rs", @".ru", @".rw", @".sa", @".sb", @".sc", @".sd", @".se", @".sg", @".sh", @".si", @".sj", @".sk", @".sl", @".sm", @".sn", @".so", @".sr", @".st", @".su", @".sv", @".sy", @".sz", @".tc", @".td", @".tf", @".tg", @".th", @".tj", @".tk", @".tl", @".tm", @".tn", @".to", @".tp", @".tr", @".tt", @".tv", @".tw", @".tz", @".ua", @".ug", @".uk", @".us", @".uy", @".uz", @".va", @".vc", @".ve", @".vg", @".vi", @".vn", @".vu", @".wf", @".ws", @".ye", @".yt", @".za", @".zm", @".zw", nil];
                if(topLevelDomain != nil && ([TLD containsObject:topLevelDomain])) {
                    //NSLog(@"TLD contains topLevelDomain:%@",topLevelDomain);
                    return TRUE;
                }
                /*else {
                 NSLog(@"TLD DOEST NOT contains topLevelDomain:%@",topLevelDomain);
                 }*/
    
            }
        }
        return FALSE;
    }
    
    
    0 讨论(0)
  • 2020-11-30 18:07

    I'm author of DCKit library, which has DCMandatoryEmailTextField. This class does email validation automatically and highlights/unhighlights the text field when the user is typing a value:

    Check it out: https://github.com/andrew8712/DCKit

    0 讨论(0)
  • 2020-11-30 18:10
    - (BOOL)validateEmailAddress:(NSString*)yourEmail
    {
        //create a regex string which includes all email validation
        NSString *emailRegex    = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    
        //create predicate with format matching your regex string
        NSPredicate *email  = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    
        //return True if your email address matches the predicate just formed 
        return [email evaluateWithObject:yourEmail];`
    }
    
    0 讨论(0)
提交回复
热议问题