Validation du mot de passe dans UITextField dans iOS
J'ai 1 UITextfield
pour le mot de passe dans mon application iPhone.
Je veux valider ce champ de texte avec la suite de la validation.
- Doit être d'au moins 10 caractères
- Doit contenir au moins une lettre minuscule, une lettre majuscule, un chiffre et un caractère spécial
- Valide les caractères spéciaux sont –
@#$%^&+=^.*(?=.{10,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
Comment puis-je restreindre la UITextField
avec les exigences ci-dessus?
OriginalL'auteur ChandreshKanetiya | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
C'est comment j'allais le faire. La validation doit être faite à la fin lorsque l'utilisateur a tapé le mot de passe et pas entre les deux.Je ne vais pas utiliser
NSRegularExpression
.Espère que cela aide...
OriginalL'auteur
Vous pouvez également le faire en utilisant
Regex
. Voici quelques exemple que je suis en fournissant pour vous:Quatrième à partir de la liste est votre cas, l'extrait de code suivant montre comment l'utiliser:
À l'aide de la méthode:
merci beaucoup pour tous les Regex
OriginalL'auteur
Condition: Mot de passe doit contenir au moins 8 caractères, 1 majuscule et 1 numéro
Solution Swift 3
vous pouvez écrire Chaîne d'Extension comme ça,
ou vous pouvez écrire la fonction comme ceci,
cela vous donnera le même résultat.
OriginalL'auteur
Vous pouvez vérifier votre mot de passe de validation ci-dessous à l'aide de la fonction juste de passer une chaîne de mot de passe et revenir valeur BOOLÉENNE.
OriginalL'auteur
Swift 3
vérifier si le mot de passe est fort ?
les caractères spéciaux comme:! @#$%^&*()_-+ est facultatif
Pourquoi je ne pas utiliser l'expression régulière ?
Parce que c'est difficile de prendre en charge les caractères réservés régulièrement
la syntaxe de l'expression.
OriginalL'auteur
utiliser une regex (NSRegularExpression classe a des docs sur la façon d'écrire le modèle lui-même), et puis :
Avertissement: Restreindre l'entrée de cette façon est vraiment déroutant pour les utilisateurs. Vous type et le type et le caractère que vous tapez juste ne semble pas!
J'avais peut-être aller avec un petit rouge (!) à côté de la zone de test, mais j'avais toujours permettre l'entrée elle-même!
OriginalL'auteur
J'ai cette solution élégante pour les Formulaires (comme sign-up) où vous avez beaucoup de validation
J'ai dans ma personnalisé UITextField la sortie:
En storyboard je peux y accéder par le biais de l'attribut de l'inspecteur et mettre regexp chaîne comme ça (pour le courrier électronique):
[a-z0-9!#$%&'*+/=?^_
{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
ensuite dans mon sous-classe j'ai cette calculée var:
@IBInspectable var regexpValidation: Chaîne de caractères? = nil //Facultatif, dans la InterfaceBuilder
qui pourrait être utilisée comme ceci:
OriginalL'auteur
pour moi le Meilleur moyen est d'utiliser
NSPredicate
et de regex.c'est regex pour votre cas:
^(?=.{10,})(?=.*[0-9])(?=.*[a-zA-Z])([@#$%^&=a-zA-Z0-9_-]+)$
objective-C code:
OriginalL'auteur
Vous devez écrire votre code de validation de cette méthode du délégué de
UITextField
Quelques liens que vous pouvez consulter pour la mise en œuvre
comment utiliser l'expression régulière dans le sdk iOS
iOS TextField Validation
OriginalL'auteur
Utiliser le
control:isValidObject:
méthode de laNSTextFieldDelegate
protocole qui permet de valider la valeur d'un NSTextField. En supposant que vous avez tous votre interface builder de pièces et de morceaux configuré correctement, vous pourriez faire quelque chose comme ceci:Il est en effet tiré après l'entrée. Je n'ai pas lu la question de la restriction de l'appuis sur une touche lors de la saisie. Ce serait vraiment confus pour l'utilisateur, je pense.
il est source de confusion - et je parle d'expérience 😀 malade ajouter à ma réponse
OriginalL'auteur