forked from aparoksha/adwaita-swift
Add more password validation checks
This commit is contained in:
parent
a4057884da
commit
a93d230d24
@ -12,6 +12,9 @@ import Adwaita
|
|||||||
enum PasswordChecker: String, CaseIterable, CustomStringConvertible, Identifiable {
|
enum PasswordChecker: String, CaseIterable, CustomStringConvertible, Identifiable {
|
||||||
case length
|
case length
|
||||||
case upper
|
case upper
|
||||||
|
case lower
|
||||||
|
case special
|
||||||
|
case numeric
|
||||||
|
|
||||||
var id: String {
|
var id: String {
|
||||||
self.rawValue
|
self.rawValue
|
||||||
@ -23,6 +26,12 @@ enum PasswordChecker: String, CaseIterable, CustomStringConvertible, Identifiabl
|
|||||||
return "Password Length"
|
return "Password Length"
|
||||||
case .upper:
|
case .upper:
|
||||||
return "Password Uppercase Characters"
|
return "Password Uppercase Characters"
|
||||||
|
case .lower:
|
||||||
|
return "Password Lowercase Characters"
|
||||||
|
case .special:
|
||||||
|
return "Password Special Characters"
|
||||||
|
case .numeric:
|
||||||
|
return "Password Numeric Characters"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,6 +41,12 @@ enum PasswordChecker: String, CaseIterable, CustomStringConvertible, Identifiabl
|
|||||||
return "Password needs to be greater than 8 characters long"
|
return "Password needs to be greater than 8 characters long"
|
||||||
case .upper:
|
case .upper:
|
||||||
return "Password needs to contain at least one uppercase character"
|
return "Password needs to contain at least one uppercase character"
|
||||||
|
case .lower:
|
||||||
|
return "Password needs to contain at least one lowercase character"
|
||||||
|
case .special:
|
||||||
|
return "Password needs to contain at least one special character `!&^%$#@()/`"
|
||||||
|
case .numeric:
|
||||||
|
return "Password needs to contain at least one numeric character"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,6 +142,15 @@ struct BindingReactorDemo: View {
|
|||||||
case .upper:
|
case .upper:
|
||||||
let result = password.range(of: ".*[A-Z]+.*", options: .regularExpression)
|
let result = password.range(of: ".*[A-Z]+.*", options: .regularExpression)
|
||||||
return (PasswordChecker.upper.rawValue, result != nil ? true : false)
|
return (PasswordChecker.upper.rawValue, result != nil ? true : false)
|
||||||
|
case .lower:
|
||||||
|
let result = password.range(of: ".*[a-z]+.*", options: .regularExpression)
|
||||||
|
return (PasswordChecker.lower.rawValue, result != nil ? true : false)
|
||||||
|
case .special:
|
||||||
|
let result = password.range(of: ".*[!&^%$#@()/]+.*", options: .regularExpression)
|
||||||
|
return (PasswordChecker.special.rawValue, result != nil ? true : false)
|
||||||
|
case .numeric:
|
||||||
|
let result = password.range(of: ".*[0-9]+.*", options: .regularExpression)
|
||||||
|
return (PasswordChecker.numeric.rawValue, result != nil ? true : false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user