-1

I try to ask users to sign up the member with their email address as the username. In the textfield of username, I have changed the keyboard type into "Email Address". But, how do I restrict users enter email address into the textfield.

Thank you for your time.

icelemon
  • 827
  • 2
  • 11
  • 23

2 Answers2

2

You can use this code to validate email address:

@IBOutlet weak var emailText: UITextField!
@IBAction func logIn(sender: AnyObject) {

    let validLogin = isValidEmail(emailText.text)
    if validLogin {
        println("User entered valid input")
    } else {
        println("Invalid email address")
    }
}

func isValidEmail(testStr:String) -> Bool {
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
    let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch)
    let result = range != nil ? true : false
    return result
}
Dharmesh Kheni
  • 71,228
  • 33
  • 160
  • 165
1

Although it's a duplicate, but may I suggest using SSValidationTextField It's an API that I wrote sometime back. Sample code looks something like

var phoneValidationTextField = SSValidationTextField(frame: CGRectMake(200, 200, 150, 50))
phoneValidationTextField.validityFunction = self.isValidPhone
phoneValidationTextField.delaytime = 0.5
phoneValidationTextField.errorText = "Incorrect Format"
phoneValidationTextField.successText = "Valid Format"
phoneValidationTextField.borderStyle = UITextBorderStyle.RoundedRect
self.addSubview(phoneValidationTextField)

And a typical validity function looks like

func isValidEmail(stringValue: String) ->Bool {
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
    let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
    return emailTest.evaluateWithObject(stringValue)
}

It takes care rest of validation itself.

Shamas S
  • 7,507
  • 10
  • 46
  • 58