2015-04-16 13 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 
    } 

Am di utilizzare questa funzione per convalidare e-mail nel mio modulo di login non ottenere come salire questo evento dal mio campo di testoconvalida della posta elettronica in applicazione rapida iOS

usando come questo

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 
     } 

ma ottenere un errore irrisolto a teststr sono nuovo a swift può qualsiasi corpo spiegarmi come risolvere questo

risposta

6

È possibile convalidare l'email semplicemente con la semplice funzione regex, che retu rn true se valido altrimenti false

È possibile convalidare mentre colpito utente Fatto/Invio sulla evento di tastiera, come 'editingDidEnd', si legano da storyboard di file di classe come,

@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) 
} 

può aiutare questo metodo per convalidare facilmente.

HTH, Buona navigazione!

+1

Perché "REGEX"? Perché interrompere tutte le possibili convenzioni di denominazione delle variabili? 'YourEmailAddress'? 'TxtEmaildAddress'? Perché non attenersi a una singola convenzione? – Fogmeister

Problemi correlati