Skip to content

Commit 157e979

Browse files
committed
Custom messages for regex rules
1 parent 5a3ddcb commit 157e979

File tree

5 files changed

+19
-39
lines changed

5 files changed

+19
-39
lines changed

.DS_Store

6 KB
Binary file not shown.

Validator/EmailRule.swift

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,10 @@
99
import Foundation
1010

1111
public class EmailRule: RegexRule {
12-
13-
public init(){
14-
super.init(regex: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}")
15-
}
16-
17-
override public init(regex:String){
18-
super.init(regex: regex)
19-
}
20-
21-
override public func errorMessage() -> String {
22-
return "Must be a valid email address"
23-
}
12+
13+
static let regex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"
14+
15+
public convenience init(message : String = "Must be a valid email address"){
16+
self.init(regex: EmailRule.regex, message: message)
17+
}
2418
}

Validator/PasswordRule.swift

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,14 @@ public class PasswordRule : RegexRule {
1313
// Alternative Regexes
1414

1515
// 8 characters. One uppercase. One Lowercase. One number.
16-
// var PASSWORD_REGEX = "^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[a-z]).{8,}$"
16+
// static let regex = "^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[a-z]).{8,}$"
1717
//
1818
// no length. One uppercase. One lowercae. One number.
19-
// var PASSWORD_REGEX = "^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[a-z]).*?$"
19+
// static let regex = "^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[a-z]).*?$"
20+
21+
static let regex = "^(?=.*?[A-Z]).{8,}$"
2022

21-
public init(){
22-
super.init(regex: "^(?=.*?[A-Z]).{8,}$")
23+
public convenience init(message : String = "Must be 8 characters with 1 uppercase") {
24+
self.init(regex: PasswordRule.regex, message : message)
2325
}
24-
25-
override public init(regex: String) {
26-
super.init(regex: regex)
27-
}
28-
29-
override public func errorMessage() -> String {
30-
return "Must be 8 characters with 1 uppercase"
31-
}
32-
3326
}

Validator/RegexRule.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ import Foundation
1111
public class RegexRule : Rule {
1212

1313
private var REGEX: String = "^(?=.*?[A-Z]).{8,}$"
14-
15-
public init(regex: String){
14+
private var message : String
15+
16+
public init(regex: String, message: String = "Invalid Regular Expression"){
1617
self.REGEX = regex
18+
self.message = message
1719
}
1820

1921
public func validate(value: String) -> Bool {
@@ -22,6 +24,6 @@ public class RegexRule : Rule {
2224
}
2325

2426
public func errorMessage() -> String {
25-
return "Invalid Regular Expression"
27+
return message
2628
}
2729
}

Validator/ZipCodeRule.swift

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,7 @@ import Foundation
1010

1111
public class ZipCodeRule: RegexRule {
1212

13-
public init(){
14-
super.init(regex: "\\d{5}")
13+
public convenience init(message : String = "Enter a valid 5 digit zipcode"){
14+
self.init(regex: "\\d{5}", message : message)
1515
}
16-
17-
override public init(regex: String) {
18-
super.init(regex: regex)
19-
}
20-
21-
public override func errorMessage() -> String {
22-
return "Enter a valid 5 digit zipcode"
23-
}
24-
2516
}

0 commit comments

Comments
 (0)