Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protocol ValidatePassword {
- func isPasswordValid(_ password: String) throws
- }
- extension ValidatePassword {
- func isPasswordValid(_ password: String) throws {
- if password.count == 0 {
- throw ValidationError.passwordError(value: .emptyPassword)
- } else if password.count < 6 || password.count > 10 {
- throw ValidationError.passwordError(value: .incorectPasswordLong)
- } else if !validatePassword(with: password) {
- throw ValidationError.passwordError(value: .passwordHasInvalidCharacters)
- }
- }
- private func validatePassword(with password: String) -> Bool {
- let passwordRegEx = "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$"
- let passwordTest = NSPredicate(format:"SELF MATCHES %@", passwordRegEx)
- return passwordTest.evaluate(with: password)
- }
- }
Add Comment
Please, Sign In to add comment