2015-04-16 5 views
5
class func isValidEmail(testStr:String) -> Bool { 
     let emailRegEx = "[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}" 
     let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch) 
     let result = range != nil ? true : false 
     return result 
    } 

An Verwendung dieser Funktion E-Mail in meinem Login-Formular zu validieren nicht bekommen, wie diesem Ereignis steigen von meinem TextfeldValidierung von E-Mail in schnellen iOS-Anwendung

mit wie diese

if(username.isEqualToString("") || [!LoginController, testStr == self.username]) 
     { 
      self.dismissViewControllerAnimated(true, completion: nil) 
      var alertView:UIAlertView = UIAlertView() 
      alertView.title = "Sign in Failed!" 
      alertView.message = "Please enter valid username" 
      alertView.delegate = self 
      alertView.addButtonWithTitle("OK") 
      alertView.show() 
      return 
     } 

aber ungelöst Fehler bei teststr Ich bin neu zu schnell kann jeder Körper mir erklären, wie man das löst

Antwort

6

Sie können E-Mail nur durch einfache Funktion regEX validieren, die retu rn true wenn gültig sonst false

Sie können es bestätigen, während Benutzer Treffer-/Fertig Geben Sie auf Tastatur-Ereignis, wie ‚editingDidEnd‘, binden sie von Storyboard-Klasse-Datei wie,

@IBAction func validateEmail(sender: UITextField){ 
    if txtEmaildAddress.text.isEmpty { 
     println("enter email address") //prompt ALert or toast 
    } 
    else if self.validate(txtEmaildAddress.text) { 
     println("Invalid email address") // prompt alert for invalid email 
    } 
} 

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

dieser Methode kann helfen, zu leicht validieren.

HTH, Enjoy Coding !!

+1

Warum 'REGEX'? Warum sollten alle möglichen Namenskonventionen für Variablen fallen? 'YourEmailAddress'? 'txtEmaildAddress'? Warum nicht bei einer einzigen Konvention bleiben? – Fogmeister