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

我使用這個功能來驗證電子郵件在我的登錄表單 沒有得到如何從我的文本框確認電子郵件的

使用像上升這一情況下,本

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 
     } 

但在teststr得到未解決的錯誤我是新來的swift任何機構可以解釋我如何解決這個問題

回答

6

你可以通過簡單的regEX函數驗證電子郵件,retu RN true如果有效,否則false

您可以驗證它,而用戶點擊完成/輸入的鍵盤事件,比如「editingDidEnd」,將其綁定從故事板類文件一樣,

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

可以幫這個方法輕鬆驗證。

HTH,享受編碼!

+1

爲什麼REGEX?爲什麼要打破每個可能的變量命名約定? 'YourEmailAddress'? 'txtEmaildAddress'?爲什麼不堅持一個單一的約定? – Fogmeister