我尝试让用户使用他们的电子邮件地址作为用户名注册会员。 在用户名的文本字段中,我已将键盘类型更改为“电子邮件地址”。但是,如何限制用户在文本字段中输入电子邮件地址。
感谢您的时间。
答案 0 :(得分:2)
您可以使用此代码验证电子邮件地址:
@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
}
答案 1 :(得分:1)
虽然它是重复的,但我建议您使用SSValidationTextField 它是我在某个时候写过的API。 示例代码类似于
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)
典型的有效性函数类似于
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)
}
它完成了其余的验证。