Comment puis-je vérifier les valeurs UITextField pour des types de caractères spécifiques, par exemple Letters ou Number?

Ce que je veux faire est de placer un boolean dans l'instruction if ci-dessous à true si quelque chose d'autre que des lettres, des nombres, des tirets et des espaces est contenu dans textField.

Ensuite, pour un e-mail, vérifiez la présence d'un e-mail valide.

Voici comment je vérifie la longueur:

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 } 

Cette instruction if se trouve dans la méthode UITextFieldDelegate textFielddidEndEditing. J'ai le sentiment que je vais devoir utiliser une forme de regex pour vérifier un email valide.

Serait-il sensé d'utiliser une regex pour vérifier qu'un champ ne contient que les caractères que j'autorise et returnner un boolean qui me dira si le champ de text contient des caractères non autorisés afin que je puisse alors afficher un message d'erreur.

Y a-t-il un moyen préféré de faire cela? Dans l'objective-c j'ai utilisé NSCharacterSet mais je ne sais pas comment implémenter cela ici.

Merci pour votre time

C'est comme ça que je l'ai fait à la fin.

  override func textFieldDidEndEditing(textField: UITextField) { let usernameField = self.signUpView.usernameField.text as NSSsortingng 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 } } } 

Merci à l'article du blog: http://toddgrooms.com/2014/06/18/unintuitive-swift/