// // File.swift // WOKA // // Created by MacBook Pro on 29/04/24. // import Foundation // MARK: - This will validate the Email ID, validation result can be modified from the enum struct EmailValidation { let emailString: String init(email: String) { self.emailString = email } private func validate() -> Bool { let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" let emailPred = NSPredicate(format:"SELF MATCHES %@", emailRegEx) return emailPred.evaluate(with: emailString) } func validate() -> EmailValidatorResult { if emailString == "" { return .isEmpty } if !emailString.contains("@") { return .missingAtTheRateSymbol } // if !emailDomain.allCases.contains(where: { emailString.contains($0.rawValue) }) { // return .missingDotCom // } if !validate() { return .badlyFormatted } return .isCorrect } } enum EmailValidatorResult: String { case missingAtTheRateSymbol = "An Email Address must contain a single '@'" case isEmpty = "Please enter your email" case isCorrect = "Email address is in correct format" case missingDotCom = "Email Address does not contain the domain portion (e.g. '.com')" case badlyFormatted = "Please enter a valid Email Address" } enum emailDomain : String,CaseIterable{ case com = ".com" case net = ".net" case coin = ".co.in" case couk = ".co.uk" }