| 1 |
efrain |
1 |
//
|
|
|
2 |
// Validators.swift
|
|
|
3 |
// twogetskills
|
|
|
4 |
//
|
|
|
5 |
// Created by Efrain Yanez Recanatini on 7/20/22.
|
|
|
6 |
//
|
|
|
7 |
|
|
|
8 |
import Foundation
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
class Validator
|
|
|
12 |
{
|
| 19 |
efrain |
13 |
|
|
|
14 |
public static func checkEmail(email : String) -> Bool {
|
|
|
15 |
let emailTrimming = email.trimmingCharacters(in: .whitespaces)
|
|
|
16 |
|
|
|
17 |
print("email : \(email)")
|
|
|
18 |
print("emailTrimming: \(emailTrimming)")
|
| 1 |
efrain |
19 |
let regex = #"^[a-zA-Z0-9_\-\.~]{2,}@[a-zA-Z0-9_\-\.~]{2,}\.[a-zA-Z]{2,}$"#
|
|
|
20 |
|
|
|
21 |
let predicate = NSPredicate(format: "SELF MATCHES %@", regex)
|
| 19 |
efrain |
22 |
return predicate.evaluate(with: emailTrimming) ? true : false;
|
| 1 |
efrain |
23 |
}
|
| 19 |
efrain |
24 |
|
|
|
25 |
public static func checkPassword(password : String) -> Bool {
|
|
|
26 |
let passwordTrimming = password.trimmingCharacters(in: .whitespaces)
|
| 1 |
efrain |
27 |
|
| 19 |
efrain |
28 |
print("password: [\(password)]")
|
|
|
29 |
print("passwordTrimming: [\(passwordTrimming)]")
|
|
|
30 |
let regexOld = #"^(?=.*\d+)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,16}$"#
|
|
|
31 |
let regexNew = #"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[\#\?\!\@\$\^\%\*\-]).{6,16}$"#
|
| 1 |
efrain |
32 |
|
| 19 |
efrain |
33 |
let predicateNew = NSPredicate(format: "SELF MATCHES %@", regexNew)
|
|
|
34 |
let predicateOld = NSPredicate(format: "SELF MATCHES %@", regexOld)
|
|
|
35 |
if(predicateOld.evaluate(with: passwordTrimming)) {
|
| 1 |
efrain |
36 |
return true
|
| 19 |
efrain |
37 |
} else if(predicateNew.evaluate(with: passwordTrimming)) {
|
|
|
38 |
return true
|
| 1 |
efrain |
39 |
} else {
|
|
|
40 |
return false
|
|
|
41 |
}
|
|
|
42 |
}
|
| 19 |
efrain |
43 |
|
| 1 |
efrain |
44 |
}
|