我想要做的是,如果文本字段中包含除字母、数字、破折号和空格之外的任何内容,则将下面的 if 语句中的一些布尔值设置为 true。
然后对于电子邮件字段检查是否有有效的电子邮件。
这就是我检查长度的方式:
if countElements(textField.text!) < 2 || countElements(textField.text) > 15 {
errorLabel.text = "Name must have between 2 and 15 characters."
self.signUpView.signUpButton.enabled = false
} else {
errorLabel.text = ""
self.signUpView.signUpButton.enabled = true
}
该 if 语句位于 UITextFieldDelegate 方法 textFielddidEndEditing 内。我有一种感觉,我必须使用某种形式的正则表达式来检查有效的电子邮件。
使用正则表达式检查字段仅包含我允许的字符并返回一个布尔值是否有意义,该布尔值会告诉我文本字段是否包含不允许的字符,以便我可以显示错误消息。
有什么首选方法可以做到这一点吗?在 Objective-c 中我使用了 NSCharacterSet 但不知道如何在这里实现。
谢谢你的时间
我最后就是这样做的。
override func textFieldDidEndEditing(textField: UITextField) {
let usernameField = self.signUpView.usernameField.text as NSString
let alphaNumericSet = NSCharacterSet.alphanumericCharacterSet()
let invalidCharacterSet = alphaNumericSet.invertedSet
let rangeOfInvalidCharacters = usernameField.rangeOfCharacterFromSet(invalidCharacterSet)
let userHasNameInvalidChars = rangeOfInvalidCharacters.location != NSNotFound
if textField == self.signUpView.usernameField {
if userHasNameInvalidChars {
errorLabel.text = "Letters and numbers only please!"
self.signUpView.signUpButton.enabled = false
// do more error stuff here
} else {
self.signUpView.signUpButton.enabled = true
}
}
}
感谢博文:http://toddgrooms.com/2014/06/18/unintuitive-swift/ http://toddgrooms.com/2014/06/18/unintuitive-swift/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)