RegEx Начинается с char ^
и заканчивается $
между ними - правила
[a-z0-9_-]
правило для символов (a-z) и цифр (0-9) + подчеркивание, дефис
{1,13}
правило для длины не менее 1 символа и максимальной длины 13
Удлинение строки:
extension String {
var isValidUserName : Bool {
let userNameRegEx = "^[a-z0-9_-]{1,13}$"
let userNameChecker = NSPredicate(format:"SELF MATCHES[c] %@", userNameRegEx)
return userNameChecker.evaluate(with: self)
}
}
Результат:
print("userName_1".isValidUserName) //True
print("user name".isValidUserName) //False Space
print("username123248632".isValidUserName) //False size
print("uerName#$1".isValidUserName) //False Special characteristics
print("uerName`d".isValidUserName) //False Special characteristics