Вы можете использовать регулярные выражения для этого, проверьте код ниже.
let usernameRegex = "^[a-zA-Z0-9]{4,10}$"
let usernameTest = NSPredicate(format:"SELF MATCHES %@", usernameRegex)
print(usernameTest.evaluate(with: "asAZ")) // boolen
Вы даже можете создать extension
из него вот так
extension String {
func isValidUserName() -> Bool{
let usernameRegex = "^[a-zA-Z0-9]{4,10}$" // your regex
let usernameTest = NSPredicate(format:"SELF MATCHES %@", usernameRegex)
return usernameTest.evaluate(with: self)
}
}
использовать его вот так
yourText.isValidUserName() // return true or false .
Вы можете гуглить любой видregex, чтобы соответствовать вашему случаю и будущим, я даже рекомендую сохранить эти regex в перечислении и создать функцию, которая принимает эти перечисления и проверяет, посмотрите на это как подсказку
enum ValidationRgex: String {
case username = "^[a-zA-Z0-9]{4,10}$"
}
extension String {
func isValid(_ regex: ValidationRgex) -> Bool{
let usernameRegex = regex.rawValue
let usernameTest = NSPredicate(format:"SELF MATCHES %@", usernameRegex)
return usernameTest.evaluate(with: self)
}
}
"MyText".isValid(.username) // usage