Je travaille sur des validations de champs de texte et je ne comprends pas comment valider le champ de texte doit contenir au moins 1 caractère de toutes les catégories suivantes: Caractères anglais majuscules (A - Z). Caractères minuscules anglais (a - z).
4 Réponses :
Jetez un œil aux Vous pouvez créer divers jeux de caractères (lettres minuscules par exemple) et tester si une chaîne a un contenu qui correspond à ce jeu de caractères. Vous pouvez donc créer une fonction qui renvoie un booléen. La fonction vérifie votre chaîne par rapport à deux Quelque chose comme ça Jetez un œil à cet article de NSHipster pour apprendre plus. CharacterSets s (décrits ici a >) CharacterSet et seulement si les deux peuvent être trouvés dans la chaîne, la fonction renvoie true .func validate(string: String) -> Bool {
let lowercase = CharacterSet.lowercaseLetters
let uppercase = CharacterSet.uppercaseLetters
let lowercaseRange = string.rangeOfCharacter(from: lowercase)
let uppercaseRange = string.rangeOfCharacter(from: uppercase)
return lowercaseRange != nil && uppercaseRange != nil
}
validate(string: "Hello") //returns true
validate(string: "hello") //returns false
validate(string: "HELLO") //returns false
Crédit: Validation des majuscules et minuscules TextField
Voici le regext de la condition: - Minimum 8 caractères, 1 majuscule et 1 chiffre.
^ (? =. [az]) (? =. [AZ]) (? =. \ d) (? =. [$ @ $!% ? &]) [A-Za-z \ d $ @ $!% ? &] {8,}
extension String {
func isValidPassword() -> Bool {
let regularExpression = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{8,}"
let passwordValidation = NSPredicate.init(format: "SELF MATCHES %@", regularExpression)
return passwordValidation.evaluate(with: self)
}
}
//Example 1
var password = "@Abcdef011" //string from UITextField (Password)
password.isValidPassword() // -> true
//Example 2
var password = "wer011" //string from UITextField
password.isValidPassword() // -> false
crédit où le crédit est dû: stackoverflow.com/a/40526112/4063602
J'espère que cela vous aidera.
func isValidPassword(testStr:String?) -> Bool { guard testStr != nil else { return false } // at least one uppercase, // at least one lowercase // 8 characters total let passwordTest = NSPredicate(format: "SELF MATCHES %@", "(?=.*[A-Z])(?=.*[a-z]).{8,}") return passwordTest.evaluate(with: testStr) }
L'extension simple accepte tout CharacterSet pour vérifier:
"aBc".hasCharacter(in: .lowercaseLetters) "aBc".hasCharacter(in: .uppercaseLetters)
utilisation:
extension String {
func hasCharacter(in characterSet: CharacterSet) -> Bool {
return rangeOfCharacter(from: characterSet) != nil
}
}
Qu'est-ce qui est déroutant? Où est ton code?
Vérifiez cette stackoverflow.com/questions/ 15132276 /… pourrait être utile