如何检查UITextField值的特定types的字符,例如字母或数字?

我想要做的就是在下面的if语句中设置一些布尔值为true,如果textField中包含字母,数字,破折号和空格以外的任何内容。

然后在电子邮件字段中检查有效的电子邮件。

这是我如何检查长度:

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里面。 我有一种感觉,我将不得不使用某种forms的正则expression式来检查一个有效的电子邮件。

使用正则expression式来检查一个字段是否只包含我允许的字符,并返回一个布尔值,告诉我文本字段是否包含不允许的字符,这样才能显示错误信息。

有没有一些首选的方法来做到这一点? 在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/